欢迎阅读《每天一个Linux命令》系列!在本篇文章中,将说明touch命令用法。
每天一个Linux命令 – (2) touch命令
在Linux系统中,touch命令是一个非常常用的命令,用于创建空文件或修改文件的时间戳。本文将详细介绍touch命令的使用方法和常见选项。
简介
- touch命令的英文原意是"change file timestamps",即用于改变文件的时间戳。
- 在Linux系统中,touch命令的路径通常为
/bin/touch
,并且所有用户都有执行该命令的权限。
通过命令which可以查看到touch命令的路径
[root@localhost ~]# which touch
/usr/bin/touch
语法
touch [选项] 文件名
选项
选项 | 说明 |
---|---|
-a | 仅修改文件的访问时间。 |
-c | 仅修改文件的状态修改时间。 |
-m | 仅修改文件的数据修改时间。 |
-d 时间 | 指定文件的修改时间。 |
示例
下面通过一些示例来演示touch命令的使用方法:
创建一个空文件
# 创建一个空文件
touch test.txt
修改文件的修改时间
# 修改文件的修改时间为当前时间
touch -m test.txt
修改文件的访问时间
# 修改文件的访问时间为当前时间
touch -a test.txt
修改文件的状态修改时间
# 修改文件的状态修改时间为当前时间
touch -c test.txt
指定文件的修改时间
# 指定文件的修改时间为2023-08-02 12:00:00
touch -t 2023-08-02 12:00:00 test.txt
验证修改过的文件时间
当使用touch命令修改文件的时间后,可以通过使用ls命令或stat命令来验证时间是否已被成功修改。
使用ls命令可以查看文件的访问时间、修改时间和状态修改时间。示例如下:
ls -l test.txt
验证:
[root@chatgpt-test tmp]# ls -l test.txt
-rw-r--r--. 1 root root 76 11月 28 03:47 test.txt
[root@chatgpt-test tmp]# touch -m test.txt
[root@chatgpt-test tmp]# touch -a test.txt
[root@chatgpt-test tmp]# touch -c test.txt
[root@chatgpt-test tmp]# ls -l test.txt
-rw-r--r--. 1 root root 76 12月 7 23:45 test.txt
上述命令将显示test.txt文件的详细信息,包括访问时间、修改时间和状态修改时间。
使用stat命令可以获取文件的详细时间信息。示例如下:
stat test.txt
验证:
[root@chatgpt-test tmp]# stat test.txt文件:"test.txt"大小:76 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:18092200 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2023-12-07 23:45:59.161055000 +0800
最近更改:2023-12-07 23:45:59.161055000 +0800
最近改动:2023-12-07 23:45:59.161055000 +0800
创建时间:-
上述命令将显示test.txt文件的详细时间信息,包括访问时间、修改时间和状态修改时间。
通过以上命令,你可以验证touch命令是否成功修改了文件的时间。如果时间与你设置的时间一致,那么说明修改成功。如果时间没有改变,可能是因为文件系统不支持修改时间戳或者你没有足够的权限进行修改。
关于Linux中文件的三个时间戳,我补充如下:
- 访问时间:文件被访问的最后一次时间。
- 数据修改时间:文件的数据被修改的最后一次时间。
- 状态修改时间:文件的状态(例如文件权限、所有者等)被修改的最后一次时间。
touch命令只能修改访问时间和数据修改时间,不能修改状态修改时间。修改访问时间或数据修改时间都会导致状态修改时间的变化。
小结
touch命令是一个非常实用的命令,可以用于创建空文件或修改文件的时间戳。通过本文的介绍,你应该已经了解了touch命令的基本使用方法和常见选项。在实际使用中,你可以根据需要灵活运用touch命令来管理文件的时间戳。