linux中的touch命令不常用,一般用來修改檔案時間戳,或者新建一個不存在的檔案。
touch [選項]… 檔案…
-a
,--time=atime
,--time=access
或--time=use
只更改存取時間。-c
或--no-create
不建立任何文件。-d
使用指定的日期時間,而非現在的時間。-f
此引數將忽略不予處理,僅負責解決BSD版本touch
指令的相容性問題。-m
或--time=mtime
或--time=modify
只更改變動時間。-r
把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同。-t
使用指定的日期時間,而非現在的時間。touch
命令引數可更改文件或目錄的日期時間,包括存取時間和更改時間。
建立不存在的檔案,用法如下所示 -
命令:
touch log1.log log2.log
輸出:
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 25 Feb 12 22:43 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$ touch log1.log log2.log
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 12 22:43 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$
如果log-noexists.log
不存在,則不建立檔案
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 12 22:43 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$ touch -c log-noexists.log
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 12 22:43 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$
更新log2.log
的時間和log2.txt
時間戳相同
命令:
touch -r log2.log log2.txt
輸出:
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 12 22:43 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$ touch -r log2.log log2.txt
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 13 01:42 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$
設定檔案的時間戳
命令:
touch -t 201910102034.50 log1.log
輸出:
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Oct 10 2019 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 13 01:42 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$ [yiibai@localhost test]$ ll
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 13 01:42 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$ touch -t 201910102034.50 log1.log
[yiibai@localhost test]$ ll
total 4
-rw-rw-r--. 1 yiibai yiibai 0 Oct 10 2019 log1.log
-rw-rw-r--. 1 yiibai yiibai 0 Feb 13 01:42 log2.log
-rw-rw-r--. 1 yiibai yiibai 25 Feb 13 01:42 log2.txt
-rw-rw-r--. 1 yiibai yiibai 0 Feb 12 22:44 log3.txt
[yiibai@localhost test]$
說明:-t
time 使用指定的時間值 time 作為指定檔案相應時間戳記的新值。此處的 time 規定為如下形式的十進位制數:
[[CC]YY]MMDDhhmm[.SS]
這裡,CC為年數中的前兩位,即」世紀數」;YY為年數的後兩位,即某世紀中的年數.如果不給出CC的值,則 touch
將把年數CCYY限定在1969--2068
之內.MM為月數,DD為天將把年數CCYY限定在1969--2068
之內.MM
為月數,DD
為天數,hh
為小時數(幾點),mm
為分鐘數,SS
為秒數.此處秒的設定範圍是0--61
,這樣可以處理閏秒.這些數位組成的時間是環境變數TZ指定的時區中的一個時間。由於系統的限制,早於1970年1月1日的時間是錯誤的。