Linux Touch命令
touch命令使我们可以更新现有文件和目录上的时间戳,以及创建新的空文件。
在本指南中,我们将通过实际示例和最常见的命令选项的详细说明,向您展示如何使用touch命令。
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
仅更改访问或修改时间
默认情况下,如果未使用任何选项,touch会将文件的上次访问和修改时间更新为当前时间。 通过使用 -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日11:02。
touch -t 06011102 file1
使用另一个文件的时间戳
的 -r
(--reference=
)选项可让我们指定参考文件并使用其时间戳而不是当前时间。
例如,以下命令将告诉touch使用以下时间: file1
对于 file2
:
touch -r file1 file2
更改符号链接时间戳
默认情况下,如果在符号链接上使用touch命令,它将更改其引用文件的时间戳。
使用 -h
(--no-dereference
)修改符号链接的时间戳。
例如,更改符号链接的时间戳 symlink1
您将使用:
touch -h symlink1
结论#
到目前为止,您应该对如何使用Linux touch命令有一个很好的了解。
触摸终端