Linux 中的 touch 命令是用于更改文件时间戳,但touch命令的最常见用法之一包括创建新的空文件。使用touch命令您可以更改 Linux 中文件和文件夹的访问、修改和更改时间
Linux文件时间戳
在讨论如何使用touch命令之前,首先回顾一下Linux中的文件时间戳。
Linux中的文件有三个时间戳:
- atime(访问时间) - 某些命令或应用程序(如cat,vim或grep)访问或者打开文件的最后时间
- mtime(修改时间) - 上次修改文件内容的时间。
- ctime(更改时间) - 文件的属性或内容最后一次更改。该属性包括文件权限,文件所有权或文件位置
显示包含时间戳的文件状态,可以使用该stat
命令。
stat file_name
要创建新文件,您需要具有父目录的写权限。否则,您将收到权限被拒绝错误
如何使用touch命令
在没有任何选项的情况下是使用它的最简单形式,如果指定为参数的文件名不存在,touch将创建一个新文件
如果文件已存在,则touch会将文件的上次访问和修改时间更改为当前时间。
例如,如果文件file1
不存在,则以下命令将创建它,否则将更改其时间戳:
touch file1
要一次创建或修改多个文件,请将文件名指定为参数:
touch file1 file2 file3
如果您不希望touch命令创建新文件,请使用-c
(--no-create
)选项。
例如,如果文件file1
存在,则以下命令将更改文件时间戳,否则,它将不执行任何操作:
touch -c file1
仅更改访问或修改时间
默认情况下,如果未使用任何选项,则会将文件的上次访问和修改时间更新为当前时间。通过使用-a
和-m
选项,允许你更改其中一个时间戳
仅更改访问时间
使用该-a
选项仅更改文件的访问时间:
touch -a file1
仅更改修改时间
使用该-m
选项更改文件的修改时间:
touch -m file1
更改修改时间时,更改时间也将更新
设置特定时间戳
touch命令还允许我们更新或创建具有除当前时间之外的特定时间的文件
使用-d
(--date=
)选项指定日期字符串并使用它而不是当前时间
例如,要将最后访问和修改时间更改为file1
2018年6月1日11:02,您将使用以下命令:
touch -d '1 June 2018 11:02' file1
日期字符串需要用单引号括起来
您还可以为touch命令提供部分日期时间字符串。仅提供日期,自动将年份更改为当前年份:
touch -d '12 June' file1
使用-t
选项指定时间戳,timestamp参数需要采用以下格式:
use [[CC]YY]MMDDhhmm[.ss]
例如,以下命令将file1
的上次访问和修改时间设置为当前年份的6月1日02日
touch -t 12061102 file1
使用另一个文件的时间戳
在-r
(--reference=
)选项允许我们指定一个参考文件,并使用它的时间戳,而不是当前的时间。
例如,以下命令将告诉touch将file2
的时间戳写到 file1
:
touch -r file1 file2
更改符号链接时间戳
默认情况下,如果在符号链接上使用touch命令修改属性,它将更改其引用文件的时间戳
使用-h
(--no-dereference
)修改符号链接的时间戳,不会将属性的更改到其引用的文件
例如,要更改符号链接symlink1
的时间戳:
touch -h symlink1
至此你应该很好地理解如何使用touch命令。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持