linux下的touch命令詳解

2021-07-30 14:13:37 字數 3746 閱讀 1180

在linux中,每個檔案都關聯乙個時間戳,並且每個檔案都會儲存最近一次訪問的時間、最近一次修改的時間和最近一次變更的時間等資訊。所以,無論何時我們建立乙個新檔案,訪問或修改乙個已存在的檔案,檔案的時間戳都會自動地更新。

touch

-  修改檔案的時間戳記. 

touch命令就可用於建立、變更和修改檔案的時間戳。

總覽 touch

[-acm][-r 

ref_

file

(參照檔案)|-t 

time

(時間值)] 

file(檔名)... 

gnu版本: 

touch

[-acfm] 

[-r 

file(參照檔案)] 

[-t 

decimtime(時間值)] 

[-d 

time(時間值)] 

[--time=] 

[--date

=time] 

[--refere

nce=file] 

[--no-create] 

[--help] 

[--version] 

[--] 

file(檔案)... 

用法描述 

touch 

修改每個指定檔案 

file 

的訪問(access)和/或修改(modifi

cation)時間戳記.除非使用-r或-t選項,這些時間戳記都將修改為當前的時間.使用-r選項時,這些戳記將按照檔案 

ref_file 

的時間戳記來修改(即變得和ref_file時間戳記值相同).使用-t選項,則這些戳記將按照給定的時間值 

time 

進行修改.同時使用或同時不使用選項-a和-m,訪問和修改兩個戳記都將被更改.若只使用選項-a,則只修改訪問戳記.同樣,只使用選項-m,則只修改修改戳記.若要修改戳記的檔案尚不存在,除非使用-c選項,touch 

將建立它(作為空檔案,並賦予0666的模式且受

umask

值的限制). 

posix標準定義的選項 

-a 修改檔案 

file 

的訪問時間.只改變訪問時間。

-c 不建立檔案 

file. 

-m 修改檔案 

file 

file 

只改變修改時間。

-r  ref_file 

將參照檔案 

ref_file 

相應的時間戳記的數值作為指定檔案 

file 

時間戳記的新值. 

-t  time 

使用指定的時間值 

time 

作為指定檔案 

file 

相應時間戳記的新值.此處的 

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指定的時區中的乙個時間.由於系統的限制,早於2023年1月1日的時間是錯誤的. 

posix標準的細節 

已被廢棄的

touch

版本使用時會出現模稜兩可的情況: 

ugly_time 

到底是時間值還是檔名?由於此種版本尚未提供-r或-t選項,所以使用時至少要有兩個

命令列引數,作為時間值, 

ugly_time 

必須為第乙個引數.這裡的 

ugly_time 

是乙個形為mmddhhmm[yy]的八位或十位整數.其中,yy是介於69--99之間表示1969--1999之間某一年的兩位數,如果不給,表示當前這一年. 

gnu版本的細節 

如果第乙個指定檔案 

file 

的名子從形式上說是選項 

-t 的有效引數,並且沒有給出選項 

-d, 

-r 或  -t 

-t 數,也沒有給`--'選項,那麼這個檔名將被解釋成時間值. 

一般情況下,利用 

touch

修改檔案的時間戳記時要求使用者時該檔案的所有者.除非只是把檔案的訪問和修改兩種時間戳記修改為當前的時刻,這種情況只要求使用者擁有對該檔案`寫'的權利就行了. 

gnu版本選項用法簡介 

-a, 

--time=atime, 

--time=access, 

--time=use 

只修改訪問時間. 

-c, 

--no-create 

如果要修改的檔案不存在,此選項使touch不去建立它. 

-d, 

--date=time 

使用時間值 

time 

代替指定檔案的戳記值.可以包含月份名,時區名以及`am'和 

`pm'等  

-f 此選項用於相容bsd版本的 

touch(1). 

-m, 

--time=mtime, 

--time=modify 

只修改修改時間

. -r 

file, 

--reference=file 

使用參照檔案 

file 

的時間戳記值修改指定檔案的時間戳記. 

-t  decimtime 

這裡時間值 

decimtime 

的格式為mmddhhmm[[cc]yy][.ss] 

從左至右分別是月份,日期,小時,分鐘,可選的世紀和年,以及可選的秒. 

touch 

將用這組數值修改指定檔案的時間戳記.請注意,這個格式與posix標準所規定的格式並不一樣. 

$ touch effyl 

使用touch命令,你同樣可以建立多個檔案。例如,如下命令將建立名稱分別為sheffyl、myeffyl和lueffyl的三個檔案:

$ touch sheffyl myeffyl lueffyl 

使用-a選項,可以改變或更新檔案的最新訪問時間。如下命令更新檔案的訪問時間,如果檔案effyl不存在,它將建立乙個以effyl命名的新的空檔案:

$ touch -a effyl 

使用-c選項,可以避免建立乙個新檔案,並用當前時間更新檔案的時間戳:

$ touch -c effyl 

使用-m選項,可以只改變檔案的修改時間,而訪問時間不變:

$ touch -m effyl 

你可以同時使用-c和-t選項,來明確設定檔案的時間,命令格式如下所示:

$ touch -c -t yymmddhhmm filename 

例如,我們將檔案effyl的修改時間和訪問時間設定為12年12月13日10點30分:

$ touch -c -t 1212131030 effyl 

如果想使用檔案myeffyl的時間戳更新檔案effyl的時間戳,那麼可以使用-r選項:

$ touch -r myeffyl effyl 

Linux下touch命令的使用

在linux中,每個檔案都與時間戳相關聯,每個檔案儲存最後一次訪問時間 最後一次修改時間和最後一次更改時間的資訊。因此,每當我們建立新檔案 訪問或修改現有檔案時,該檔案的時間戳都會自動更新。下面,我們將介紹一些touch命令的使用案例。touch命令是unix linux作業系統的標準程式,用於建立...

linux中新建檔案命令touch用法詳解

quote linux中新建檔案命令touch用法詳解 linux中的touch命令一般用來修改檔案的時間,或者新建乙個不存在的檔案.語法如下 touch acm r ref file 參照檔案 t time 時間值 file 檔名 例子 touch file1.txt 更新file1.txt的訪問...

linux命令 touch命令

touch命令將每個檔案的訪問時間和修改時間改為當前時間。touch 選項 檔案 1 在當前目錄下建立乙個空檔案a.log root vm 0 4 centos chenwei touch a.txt root vm 0 4 centos chenwei ll total 60 rw r r 1 r...