touch:創建空文件或改變文件的時間戳屬性
【功能說明】
touch命令有兩個功能:一是創建新的空文件;二是改變已有文件的時間戳屬性
【語法格式】
touch [option] [file] touch [選項] [文件] |
提示:
-
-
- touch命令以及后面的選項和文件,每個元素之間都至少要有一個空格
- 注意區分touch和mkdir命令的功能,mkdir命令是創建空目錄,而touch是創建空文件。
- 在linux中,一切皆文件。雖然touch命令不能創建目錄,但是可以修改目錄的時間戳。
【選項說明】
參數說明 |
解釋說明 |
-a |
只更改指定文件的最后訪問時間 |
-d |
使用字符串STRING代表的時間作為模板設置指定文件的時間屬性 |
-m |
只更改指定文件的最后修改時間 |
-r file |
將指定文件的時間屬性設置為與模板文件file的時間屬性相同 |
-t STAMP |
使用[[CC]YY]MMDDhhmm[.ss]格式的時間設置文件的時間屬性。格式的含義從左到右依次為:世紀、年、月、日、時、分、秒 |
【使用范例】
基礎范例
案例1:創建文件示例(文件事先不存在的情況)
[root@1-230 ~]# mkdir /test #在根下新建一個test目錄 [root@1-230 ~]# cd /test/ #切換到/text目錄 [root@1-230 test]# touch aa.txt #創建空文件aa.txt [root@1-230 test]# ls #查看到aa.txt文件創建成功 aa.txt [root@1-230 test]# touch a.txt b.txt #同時創建多個文件,類似mkdir創建多個目錄 [root@1-230 test]# ls aa.txt a.txt b.txt [root@1-230 test]# touch scc{1..5} #可以利用大括號“{ }”輸出的字符序列批量創建文件 [root@1-230 test]# ls aa.txt a.txt b.txt scc1 scc2 scc3 scc4 scc5 |
案例2:更改文件的時間戳屬性
[root@1-230 test]# stat aa.txt #stat命令可以查看文件的時間戳屬性,具體用法見后面stat命令 文件:"aa.txt" 大小:0 塊:0 IO 塊:4096 普通空文件 設備:fd00h/64768d Inode:35313153 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近訪問:2018-10-30 23:11:37.065471839 +0800 最近更改:2018-10-30 23:11:37.065471839 +0800 最近改動:2018-10-30 23:11:37.065471839 +0800 創建時間:- 提示: 說明:文件的時間戳屬性分為訪問時間、修改時間、狀態改變時間 [root@1-230 test]# touch -a aa.txt #-a 參數更改最后訪問的時間 [root@1-230 test]# stat aa.txt 文件:"aa.txt" 大小:0 塊:0 IO 塊:4096 普通空文件 設備:fd00h/64768d Inode:35313153 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近訪問:2018-10-30 23:17:06.329316946 +0800 最近更改:2018-10-30 23:11:37.065471839 +0800 最近改動:2018-10-30 23:17:06.329316946 +0800 創建時間:- [root@1-230 test]# touch -m aa.txt #-m參數更改最后修改的時間 [root@1-230 test]# stat aa.txt 文件:"aa.txt" 大小:0 塊:0 IO 塊:4096 普通空文件 設備:fd00h/64768d Inode:35313153 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近訪問:2018-10-30 23:17:06.329316946 +0800 最近更改:2018-10-30 23:20:26.211938858 +0800 最近改動:2018-10-30 23:20:26.211938858 +0800 創建時間:- |
案例3:指定時間屬性創建/修改文件
可利用選項-d指定創建文件后的文件修改時間:
[root@1-230 test]# ls -lh aa.txt #修改前的文件修改時間10月30日 -rw-r--r-- 1 root root 0 10月 30 23:20 aa.txt [root@1-230 test]# touch -d 20181129 aa.txt #指定創建文件后的文件修改時間為2018年11月29日 [root@1-230 test]# ls -lh aa.txt #修改后時間為2018年11月29日 -rw-r--r-- 1 root root 0 11月 29 2018 aa.txt |
也可以利用選項-r,修改aa.txt的時間屬性,使其和a.txt的時間屬性一致:
[root@1-230 test]# ls -lh a.txt #查看a.txt的修改時間 -rw-r--r-- 1 root root 0 10月 30 23:11 a.txt [root@1-230 test]# touch -r a.txt aa.txt #使用-r參數讓a.txt的時間屬性和a.txt一致 [root@1-230 test]# ls -lh aa.txt -rw-r--r-- 1 root root 0 10月 30 23:11 aa.txt #aa.txt文件的修改時間和a.txt一致 |
還可以利用選項-t,將文件設置為201810312333.50時間格式
[root@1-230 test]# touch -t 201810312333.50 aa.txt [root@1-230 test]# ls -lh --full-time aa.txt -rw-r--r-- 1 root root 0 2018-10-31 23:33:50.000000000 +0800 aa.txt 查看設置的屬性 |
【擴展知識】
這里擴展一點有關時間戳屬性的知識
GNU/Linux的文件有三種類型的時間戳:
Access: 2018-10-31 23:33:50.000000000 +0800 #最后訪問文件的時間 Modify: 2018-10-31 23:33:50.000000000 +0800 #最后修改文件的時間 Change: 2018-10-30 23:35:05.120111040 +0800 #最后改變文件狀態的時間 |
對應ls命令,查看上述時間戳的選項如下:
mtime:最后修改時間(ls -lt) #修改文件內容,文件的修改時間(modify time)會改變 ctime:狀態改變時間(ls -lc)#修改文件內容,移動文件或改變文件屬性等,文件的change時間會改變 atime:最后訪問時間(ls -lu) #查看文件內容時,文件的訪問時間(access time)會改變 |