Linux中的touch命令介绍

191 阅读4分钟

touch命令是用来修改文件的时间戳的,这是它的主要功能,尽管它也可以用来创建文件。在这篇文章中,我们将讨论触摸命令的两种用途和常用的命令。

目录:

  1. 简介
  2. 语法
  3. 命令
  4. 总结
  5. 参考文献

简介

touch命令用来修改文件的时间戳,这是它的主要功能,尽管它也可以用来创建文件。
它可以改变任何给定文件的修改和访问时间。
Linux的时间戳包括:
访问时间atime,当cat等命令读取文件内容时发生变化;ls -lu
改变时间ctime ,当文件的属性如名称、权限或位置改变时发生变化;ls -lc
修改时间mtime,当文件的内容改变时发生变化;ls -l

语法

语法如下:

touch [OPTION]... FILE...

常用的命令选项包括:

  • -a,改变访问时间
  • -m,改变修改时间
  • -d=[string]--date=[string], 用一个日期字符串来改变时间戳
  • -t [stamp], 修改一个日期/时间格式的时间戳
  • -c或--no-create, 避免创建一个新的文件
  • -h或--no-dereference, 改变符号链接的时间戳

命令

你可以通过使用stat命令查看文件的状态,如下所示:

stat test.txt

创建文件

要创建一个文件,我们要写:

touch file.txt

如果一个文件不存在,它就会被创建,否则如果文件存在,touch将把文件的时间戳修改为当前时间。

我们还可以通过向touch传递文件名来创建多个文件,如下所示:

touch file1 file2 file3

我们也可以通过使用一个范围来创建多个文件,如下所示:

touch file{1..7}

上面的命令创建了七个文件,从file1一直到file7
你还可以通过文件扩展名,如下。

touch file{1..7}.txt

我们也可以使用字母:

touch file_{a..g}

修改时间戳

要修改一个文件的时间戳,语法如下:

touch -t [timestamp] [file]

时间戳遵循一个特定的模式:

[[CC]YY]MMDDhhmm[.ss]
  • CC,代表年份的前两位数字
  • YY,代表年的最后两位数字
  • MM,代表月份
  • DD,代表一天
  • hh,代表小时
  • mm,代表分钟
  • ss,代表秒

一个例子

touch -t 202201181930 test.txt

该命令将test.txt的时间戳修改为2020年1月18日19时30分。

-d选项用于使用日期字符串设置时间戳,例如:

touch -d yesterday test.txt

将修改时间戳为昨天的日期。

或者

touch -d 18January2000 test.txt

将时间戳修改为2000年的1月18日:

touch --date="next Thursday" venmo.txt

将其修改为下一个星期四的时间。

修改访问时间

使用-a选项。

比如说:

touch -a test.txt

test.txt的访问时间将被修改为当前时间。

我们也可以通过同时使用-a-t选项来修改访问时间,使其符合指定的时间戳:

touch -at 202201181930 test.txt

我们可以使用ls -lu命令查看这些变化。

改动修改时间

要改变修改时间,我们使用-m选项。
一个例子

touch -m test.txt

该命令将test.txt的修改时间改为与当前时间戳相匹配。

ls -l命令可以用来确认更改。

我们也可以通过使用*-m-t*两个选项将修改时间改为特定的时间戳,如下所示:

touch -mt 202201181930 test.txt

为了在同一命令中改变修改和访问时间,我们同时使用*-a-m*选项,如下所示:

touch -am test.txt

使用*-c*选项是为了避免创建新文件。
一个例子

touch -c randomFile.txt

如果随机文件.txt不存在,它就不会被创建,否则如果它存在,touch就会照常执行。

我们还可以通过使用代表参考文件的-r选项,根据另一个文件的时间戳来改变一个文件的时间戳:

touch -r file1.txt file2.txt

该命令将把file1.txt的时间戳分配给file2.txt

我们还可以通过使用*-h*选项来改变符号链接的时间戳,如下所示:
通过执行创建一个符号链接。

ln -s test.txt tLink

然后改变它的时间戳:

touch -h tLink

总结

touch命令的主要功能是修改访问时间、修改时间或更改时间。它也可以用来创建空文件。
我们可以在运行时实现touch命令来创建和写入文件。
Touch避免了文件的打开、更新、保存和关闭。

参考资料

  1. Touch手册页,man touch或touch --help。