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
命令,可以轻松实现批量修改文件的时间戳的功能。