每天學一個 Linux 命令(13):touch

XXLLA發表於2024-06-27

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上的基礎必備命令。

相關文章