您的位置:

Linux命令:touch,创建或修改文件的时间戳

touch是一个在Linux操作系统内置的命令,用于创建或修改文件的时间戳。

一、touch的基本用法

最基本的用法是,如果文件不存在,touch命令将会创建一个新文件。

$ touch filename

此时可以通过ls命令查看文件是否已经被创建。

$ ls
filename

如果文件已经存在,则touch命令将会更新文件的访问时间和修改时间。这个功能在有些情况下非常有用,例如需要在文件修改后重新编译代码等。

$ touch filename

可以通过ls -l filename来查看文件的时间戳是否被更新。

$ ls -l filename
-rw-rw-r-- 1 user user 0 May 31 00:00 filename

可以看到,文件的时间戳已经被更新为当前时间。

二、touch的其他用法

1. 使用-a选项改变文件的访问时间

如果想要单独改变文件的访问时间而保持它的修改时间不变,则可以使用-a选项。

$ touch -a filename

2. 使用-m选项改变文件的修改时间

类似的,如果想要单独改变文件的修改时间而保持它的访问时间不变,则可以使用-m选项。

$ touch -m filename

3. 与-r选项一起使用

-r选项可以用于将一个文件的时间戳设置为另一个文件的时间戳。

$ touch -r file1 file2

这个命令将把file2的时间戳设置为和file1一样。

4. 与-t选项一起使用

-t选项可以用于将文件的时间戳设置为指定时间。

$ touch -t 201805310000.00 filename

这个命令将文件的访问时间和修改时间都设置为2018年5月31日的0点0分。7个参数格式是YYYYMMDDhhmm.ss(年月日时分秒)。

三、使用touch批量修改文件的时间戳

在实际应用中,有时需要批量修改文件的时间戳。此时可以通过xargs命令来结合使用touch命令,从而实现批量修改的功效。

例如,要将当前目录下的所有html文件的文件时间戳修改为当前时间,可以使用如下命令:

$ find . -name "*.html" | xargs touch

这个命令将所有以.html结尾的文件名传递给xargs命令,xargs命令再将这些文件名传递给touch命令进行时间戳的修改。

四、总结

touch是一个非常有用的命令,可以用来创建或修改文件的时间戳。同时,touch还支持许多参数选项,可以用来单独修改文件的访问时间、修改时间,或者将文件的时间戳设置为指定的时间。在实际应用中,结合xargs命令,可以轻松实现批量修改文件的时间戳的功能。