touch命令

touch命令


Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

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 列出版本讯息

实例演示

  1. 使用 touch 创建一个空文件
MHQ0063:~ xws$ touch file.txt
MHQ0063:~ xws$ ls -l file.txt
-rw-r--r--  1 xws  staff  0  7 25 12:22 file.txt
  1. 改变/更新文件和目录的访问时间

假设我们想要改变名为 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

在这里插入图片描述
3. 改变目录的访问时间

假设我们在 /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/
  1. 更改访问时间而不用创建新文件

在某些情况下,如果文件存在,我们希望更改文件的访问时间,并避免创建文件。在 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
  1. 更改文件和目录的修改时间

在 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/
  1. 将访问和修改时间设置为特定的日期和时间

每当我们使用 touch 命令更改文件和目录的访问和修改时间时,它将当前时间设置为该文件或目录的访问和修改时间。

假设我们想要将特定的日期和时间设置为文件的访问和修改时间,这可以使用 touch 命令中的 -c-t 选项来实现。

日期和时间可以使用以下格式指定:
{CCYY}MMDDhhmm.ss
其中:

  • CC – 年份的前两位数字
  • YY – 年份的后两位数字
  • MM – 月份 (01-12)
  • DD – 天 (01-31)
  • hh – 小时 (00-23)
  • mm – 分钟 (00-59)

比如我们将 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

在这里插入图片描述
7. 使用参考文件设置时间戳(-r)

在 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命令_第1张图片
实例练习
使用指令"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命令_第2张图片
使用指令"touch"时,若指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:

$ touch file        #创建一个名为“file”的新的空白文件 

touch命令就介绍到这里

对开发和运维来说,掌握linux命令是必要的。其实对于测试工程师来说也是必须掌握的,只不过我们要求可能相对来说没那么高,而且不同级别的测试工程师要求掌握的程度也不一样。

关于Linux命令我专门整理了几个常用的命令,做了较为详细的介绍,虽然并不是全部的命令都有涉及到,但是整理的出来的是我们平常比较常用的。Linux命令太多,全部掌握需要花费很多时间,也不太可能,其实只要熟练掌握几个常用的命令就足以应付面试了。Linux命令的目录我专门整理了一篇,作为入口☞Linux常用命令(入口)

你可能感兴趣的:(Linux命令)