ls -l 可以显示档案的时间记录
语法:
touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file …
参数说明:
参数 | 说明 |
---|---|
a | 改变/更新文件和目录的访问时间 |
m | 改变档案的修改时间记录 |
c | 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样 |
f | 不使用,是为了与其他 unix 系统的相容性而保留 |
r | 使用参考档的时间记录,与 --file 的效果一样 |
t | 设定档案的时间记录,格式与 date 指令相同 |
–no-create | 不会建立新档案 |
–help | 列出指令格式 |
–version | 列出版本讯息 |
实例演示:
MHQ0063:~ xws$ touch file.txt
MHQ0063:~ xws$ ls -l file.txt
-rw-r--r-- 1 xws staff 0 7 25 12:22 file.txt
假设我们想要改变名为 file.txt 文件的访问时间,在 touch 命令中使用 -a 选项,然后输入文件名。如下所示:
MHQ0063:~ xws$ touch -a file.txt
现在使用 stat 命令验证文件的访问时间是否已更新:
MHQ0063:~ xws$ stat file.txt
16777220 12892326843 -rw-r--r-- 1 xws staff 0 0
"Jul 27 16:46:51 2019"
"Jul 25 12:22:26 2019"
"Jul 27 16:46:51 2019"
"Jul 25 12:22:26 2019" 4096 0 0 file.txt
假设我们在 /test目录下有一个 test2 文件夹,让我们用下面的命令改变这个文件夹的访问时间:
MHQ0063:~ xws$ touch -m test/test2/
MHQ0063:~ xws$ stat test/test2/
16777220 12892481242 drwxr-xr-x 2 xws staff 0 64
"Jul 27 16:58:39 2019"
"Jul 27 17:31:28 2019"
"Jul 27 17:31:28 2019"
"Jul 27 16:58:39 2019" 4096 0 0 test/test2/
在某些情况下,如果文件存在,我们希望更改文件的访问时间,并避免创建文件。在 touch 命令中使用 -c 选项即可,如果文件存在,那么我们可以改变文件的访问时间,如果不存在,我们也可不会创建它。
MHQ0063:~ xws$ touch -c test.txt
MHQ0063:~ xws$ touch -c test2.txt
MHQ0063:~ xws$ ls -s test2.txt
ls: test2.txt: No such file or directory
MHQ0063:~ xws$ ls -l test.txt
-rw-r--r--@ 1 xws staff 169 7 27 17:36 test.txt
在 touch 命令中使用 -m 选项,我们可以更改文件和目录的修改时间。
让我们更改名为 file.txt 文件的更改时间:
MHQ0063:~ xws$ touch -m file.txt
现在使用 stat 命令来验证修改时间是否改变:
MHQ0063:~ xws$ stat file.txt
16777220 12892326843 -rw-r--r-- 1 xws staff 0 0 "Jul 27 16:46:51 2019" "Jul 27 17:43:11 2019" "Jul 27 17:43:11 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt
同样的,我们可以改变一个目录的修改时间:
MHQ0063:~ xws$ touch -m test/test2/
MHQ0063:~ xws$ stat test/test2/
16777220 12892481242 drwxr-xr-x 2 xws staff 0 64 "Jul 27 16:58:39 2019" "Jul 27 17:45:26 2019" "Jul 27 17:45:26 2019" "Jul 27 16:58:39 2019" 4096 0 0 test/test2/
每当我们使用 touch 命令更改文件和目录的访问和修改时间时,它将当前时间设置为该文件或目录的访问和修改时间。
假设我们想要将特定的日期和时间设置为文件的访问和修改时间,这可以使用 touch 命令中的 -c 和 -t 选项来实现。
日期和时间可以使用以下格式指定:
{CCYY}MMDDhhmm.ss
其中:
比如我们将 file.txt 文件的访问和修改时间设置为未来的一个时间(2020 年 06月 01 日 13 时 14分)
MHQ0063:~ xws$ touch -c -t 202006011314 file.txt
使用 stat 命令查看更新访问和修改时间:
MHQ0063:~ xws$ stat file.txt
16777220 12892326843 -rw-r--r-- 1 xws staff 0 0 "Jun 1 13:14:00 2020" "Jun 1 13:14:00 2020" "Jul 27 17:51:15 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt
在 touch 命令中,我们可以使用参考文件来设置文件或目录的时间戳。假设我想在 file.txt 文件上设置与文件 test.txt 文件相同的时间戳, touch 命令中使用 -r 选项可以实现
语法: touch -r {参考文件} 真正文件
更新file.txt的时间戳,使其和test.txt的时间戳相同
touch -r file.txt test.txt
使用stat命令查看
MHQ0063:~ xws$ stat file.txt test.txt
16777220 12892326843 -rw-r--r-- 1 xws staff 0 0 "Jun 1 13:14:00 2020" "Jun 1 13:14:00 2020" "Jul 27 17:51:15 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt
16777220 12892302901 -rw-r--r-- 1 xws staff 0 169 "Jul 27 18:16:29 2019" "Jun 1 13:14:00 2020" "Jul 27 18:16:28 2019" "Jul 24 18:02:16 2019" 4096 8 0 test.txt
实例练习
使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:
$ touch testfile #先创建一个testfile
首先,使用ls命令查看testfile文件的属性,如下所示:
$ ls -l testfile #查看文件的时间属性
#原来文件的修改时间为12:04
-rw-r--r-- 1 xws staff 0 7 25 12:04 testfile
执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:
$ touch testfile #修改文件时间属性为当前系统时间
$ ls -l testfile #查看文件的时间属性
#修改后文件的时间属性为当前系统时间
-rw-r--r-- 1 xws staff 0 7 25 12:07 testfile
使用指令"touch"时,若指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:
$ touch file #创建一个名为“file”的新的空白文件
touch命令就介绍到这里
对开发和运维来说,掌握linux命令是必要的。其实对于测试工程师来说也是必须掌握的,只不过我们要求可能相对来说没那么高,而且不同级别的测试工程师要求掌握的程度也不一样。
关于Linux命令我专门整理了几个常用的命令,做了较为详细的介绍,虽然并不是全部的命令都有涉及到,但是整理的出来的是我们平常比较常用的。Linux命令太多,全部掌握需要花费很多时间,也不太可能,其实只要熟练掌握几个常用的命令就足以应付面试了。Linux命令的目录我专门整理了一篇,作为入口☞Linux常用命令(入口)