如何在Linux中使用Touch命令

首先我们对linux中的touch
命令做一个介绍。touch
命令允许我们创建新的空文件以及更新现有文件和目录上的时间戳。
在本教程中,我将通过实际touch
命令实例及常用的命令选项详细介绍如何使用touch
命令。
Linux文件时间戳
在探讨如何使用touch
命令之前,让我们先回顾一下Linux中的文件时间戳概念。
Linux中的文件具有三个时间戳:
-
mtime(修改时间)-上次修改文件内容的时间。
-
ctime(更改时间)-文件的属性或内容上次更改的时间。 该属性包括文件许可权,文件所有权或文件位置。
要显示文件状态(包括时间戳),请使用stat
命令。stat file_name
创建新文件需要在父目录上具有写权限。 否则,您将收到一个权限被拒绝的错误。
如何使用touch命令
如果touch
命令使用不带任何选项的简单形式,并且指定的参数的文件名不存在,则touch
命令会创建一个新文件。如果文件存在,touch
命令会将该文件的上次访问时间和修改时间更改为当前时间。
例如:file1.txt
文件不存在,使用touch
命令可以创建该文件,否则修改该文件的时间戳。
命令如下:
touch file1.txt
如果要一次创建多个文件或者修改多个文件的时间戳,可以使用如下命令:
touch file1.txt file2.txt file3.txt
如果不希望使用touch
命令时创建文件可以在命令中使用-c (--no-create)
选项。
例如,假设文件file1.txt存在,可以使用如下命令修改该文件的时间戳,即便该文件不存在也不会创建新的文件。
touch -c file1.txt
仅更改访问或修改时间
默认情况下,如果该文件存在默认使用touch
命令会修改该文件的访问时间和修改时间为当前时间。当然我们也可以使用-a
和-m
选项来指定文件的访问时间和修改时间。
使用-a
选项更改文件的访问时间为当前时间:
touch -a file1.txt
使用-m
选项更改文件的修改时间为当前时间:
touch -m file1.txt
当我们使用-m
更改文件的修改时间(mtime)是,文件的更改时间(ctime)也会随之更改。
设置特定的时间戳
touch
命令还允许我们使用当前时间以外的特定时间更新或创建文件。
使用-d(--date =)
选项指定日期字符串,并使用它代替当前时间。
例如,要将file1的上次访问和修改时间都更改为2020年1月7日11:02,请使用以下命令:
touch -d '7 Jan 2020 11:02' file1
日期字符串需要使用单引号。
当然,还可以为touch
命令提供部分日期时间字符串。 仅提供日期,会自动将年份更改为当前年份:
touch -d '12 Jan' file1
使用-t选项指定时间戳,并使用它代替当前时间。 timestamp参数必须采用以下格式:
[[CC]YY]MMDDhhmm[.ss]
例如,以下命令会将file1
的最后访问和修改时间设置为当年的1月1日11:02。
touch -t 01061102 file1
使用另一个文件的时间戳
-r(--reference =)
选项允许我们指定参考文件并使用其时间戳而不是当前时间。
例如,以下命令将告诉touch将file1的时间用于file2:
touch -r file1 file2
更改符号链接时间戳
默认情况下,如果在符号链接上使用touch
命令,它将更改其引用文件的时间戳。
使用-h(--no-dereference)
修改符号链接的时间戳。
例如,要更改符号链接symlink1
的时间戳,可以使用:
touch -h symlink1
写在最后
到目前为止,您应该对如何使用Linux中touch
命令有一个很好的了解。希望本教程对你认识touch
命令使用有所帮助。

如果想了解更多Linux中命令使用,可以下载Linux命令中文手册,关注我后,公号里面回复“命令”即可下载。