touch:命令創建文件


touch:創建空文件或改變文件的時間戳屬性

  【功能說明】

    touch命令有兩個功能:一是創建新的空文件;二是改變已有文件的時間戳屬性

  【語法格式】

touch  [option]  [file]

touch  [選項]     [文件]

      提示:

      1. touch命令以及后面的選項和文件,每個元素之間都至少要有一個空格
      2. 注意區分touch和mkdir命令的功能,mkdir命令是創建空目錄,而touch是創建空文件。
      3. 在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)會改變


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM