Github地址:
https://github.com/mingongge/Learn-a-Linux-command-every-day
命令簡介
touch 命令用來建立新的空檔案。touch命令也可以用來修改檔案時間戳。如果該檔案不存在,則建立具有該名稱的空檔案。
與檔案關聯的時間戳
Access time #上次讀取檔案的時間,簡稱atime
Modification time #最後一次修改檔案的內容,簡稱mtime
Change time #上次更改檔案的後設資料(稱為“狀態”)。狀態資訊包括檔案的許可權及其時間戳。每當檔案發生任何事件時,其狀態的至少一個元素都會更改,並且其ctime將設定為當前系統時間。簡稱ctime
atime和mtime是檔案狀態後設資料的一部分。因此,當更改檔案的atime(-a)或mtime(-m)時,其ctime會自動設定為當前時間。無法手動設定 ctime。
命令語法
touch [選項] [檔名]
touch [option] [filename]
選項說明
-a:或--time=atime或--time=access或--time=use #只更改讀取時間
-c:或--no-create #不建立任何檔案
-d:<時間日期> #更改檔案的修改時間,使用指定的日期時間,而非現在的時間
-h,--no-dereference #如果file是符號連結並且指定了此選項,則touch將修改符號連結的時間戳,而不是其引用的檔案。 如果未指定此選項,則在進行修改之前觸控將取消引用符號連結。此選項意味著-c:如果檔案不存在,則不會建立任何內容。
-f:#此引數將忽略不予處理,僅負責解決BSD版本touch指令的相容性問題;
-m:或--time=mtime或--time=modify #只更該變動時間;
-r:<參考檔案或目錄> #把指定檔案或目錄的日期時間,統統設成和參考檔案或目錄的日期時間相同;
-t:<日期時間> #使用指定的日期時間,而非現在的時間;
--help: #線上幫助;
--version: #顯示版本資訊。
應用舉例
建立新檔案
[root@centos7 testdir]# touch testfile
[root@centos7 testdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jan 2 07:55 testfile
如果建立檔案時,此檔案存在,則會修改這個檔案的其訪問,修改和更改時間(atime,mtime和ctime)設定為當前系統時間。
[root@centos7 testdir]# date
Sat Jan 2 07:57:00 EST 2021
[root@centos7 testdir]# touch testfile
[root@centos7 testdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jan 2 07:57 testfile
修改檔案的atime與mtime
[root@centos7 testdir]# touch -d "25 Feb" testfile
[root@centos7 testdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Feb 25 2021 testfile
複製檔案訪問時間,把另一個檔案的訪問時間直接賦予到新建立的檔案上
[root@centos7 testdir]# touch -r testfile filetest
[root@centos7 testdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Feb 25 2021 filetest
-rw-r--r-- 1 root root 0 Feb 25 2021 testfile
touch命令和mkdir命令功能相同,都是用來建立檔案或目錄所用,touch命令的功能稍多一些,也都是Linux上的基礎必備命令。