Linux touch命令用于更改文件時(shí)間戳。但touch命令的最常見用法是創(chuàng)建文件。
在本教程中我們將說明如何在Linux 使用touch 命令修改文件與文件夾的訪問時(shí)間atime、修改時(shí)間mtime和更改時(shí)間ctime。
還說明如何使用stat命令查看文件或者目錄時(shí)間戳,修改為指定時(shí)間戳,使用另一個(gè)文件的時(shí)間戳,更改符號(hào)鏈接時(shí)間戳。
Linux 文件時(shí)間戳
在討論如何使用touch命令之前,首先回顧一下Linux 文件時(shí)間戳。Linux 文件有三個(gè)時(shí)間戳。
訪問時(shí)間atime全稱Access time。即某些命令或者應(yīng)用程序,例如如cat,vim或grep打開文件的最后時(shí)間。
修改時(shí)間mtime全稱Modify time,即最后一次修改文件內(nèi)容的時(shí)間。更改時(shí)間ctime全稱Change time即文件的屬性或內(nèi)容最后一次更改文件權(quán)限,文件所有權(quán)或文件位置。
stat 命令查看文件時(shí)間戳
在修改文件或者文件夾的時(shí)間戳之前,需要知道文件目錄/文件夾當(dāng)前時(shí)間戳,從而確定是否修改時(shí)間戳。
你可以使用stat
命令查看文件時(shí)間戳,例如命令stat file_name將會(huì)打印file_name文件的時(shí)間戳。
stat file_name
touch 命令創(chuàng)建文件
要?jiǎng)?chuàng)建文件,您需要具有對(duì)當(dāng)目錄的寫權(quán)限。否則,您將收到權(quán)限拒絕的錯(cuò)誤。
在不指定任何選項(xiàng)運(yùn)行touch命令時(shí),如果指定的文件不存在,touch將創(chuàng)建文件。如果文件已存在,touch命令將文件的訪問時(shí)間和修改時(shí)間修改為當(dāng)前時(shí)間。
要一次創(chuàng)建或修改多個(gè)文件,請(qǐng)指定多個(gè)文件名并使用空格符分隔文件名。同樣指定的多個(gè)文件不存在則會(huì)創(chuàng)建。
如果您不希望touch命令創(chuàng)建文件,請(qǐng)使用-c
/--no-create
選項(xiàng)。ttouch命令將文件的訪問時(shí)間和修改時(shí)間修改為當(dāng)前時(shí)間。
touch file1
touch file1 file2 file3
touch -c file1
touch 命令修改訪問時(shí)間和更改時(shí)間
默認(rèn)情況下,如果未指定任何選項(xiàng),touch命令將文件的訪問和修改時(shí)間更新為當(dāng)前時(shí)間。你可以使用touch命令的-a
和-m
選項(xiàng),僅更改其中一個(gè)時(shí)間戳。
當(dāng)使用touch命令的-a
選項(xiàng)時(shí)僅更改文件的訪問時(shí)間,例如命令touch -a file1
。
使用touch命令的-m
選項(xiàng)僅更改文件的修改時(shí)間。更改修改時(shí)間時(shí),更改時(shí)間也將更新。例如命令touch -m file1
。
touch -a file1 #atime
touch -m file1 #mtime
touch 命令設(shè)置時(shí)間戳
touch命令還允許我們修改的文件時(shí)間戳。使用-d
/--date=
選項(xiàng)指定日期字符串。
日期字符串需要用單引號(hào)括起來。您還可以為touch命令提供部分日期時(shí)間的字符串。例如僅提供日期,自動(dòng)將年份更改為當(dāng)前年份。
-r
/--reference=
選項(xiàng)允許我們指定一個(gè)參考文件,并使用它的時(shí)間戳,而不是當(dāng)前的時(shí)間。
例如命令touch -d '1 June 2018 11:02' file1
將訪問時(shí)間和修改時(shí)間更改為2018年6月1日11:02。
touch -d '12 June' file1
命令不指定年年份,將訪問時(shí)間和修改時(shí)間更改為2022年6月12日00:00。
touch -r file1 file2
命令將file2
的時(shí)間戳寫到file1
,這是使用另一個(gè)文件的時(shí)間戳示例。
touch -d '1 June 2018 11:02' file1
touch -d '12 June' file1
touch -r file1 file2
touch 命令修改符號(hào)鏈接時(shí)間戳
默認(rèn)情況下,如果在符號(hào)鏈接使用touch命令修改時(shí)間戳,它將修改目標(biāo)文件的時(shí)間戳。
在使用touch命令的-h
/--no-dereference
修改符號(hào)鏈接的時(shí)間戳?xí)r,則不會(huì)目標(biāo)文件的時(shí)間戳。
touch -h symlink1
結(jié)論
至此你應(yīng)該很好地理解如何使用touch命令。
-
Linux
+關(guān)注
關(guān)注
87文章
11350瀏覽量
210459 -
touch
+關(guān)注
關(guān)注
0文章
68瀏覽量
34484 -
命令
+關(guān)注
關(guān)注
5文章
697瀏覽量
22117 -
時(shí)間戳
+關(guān)注
關(guān)注
0文章
15瀏覽量
2637
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在Linux使用iostat命令
淺談Linux touch命令實(shí)例
![淺談<b class='flag-5'>Linux</b> <b class='flag-5'>touch</b><b class='flag-5'>命令</b>實(shí)例](https://file.elecfans.com/web1/M00/46/05/pIYBAFqBW2mATYqvAAXN7UOMx3U006.png)
linux中 9 個(gè)touch命令介紹
![<b class='flag-5'>linux</b>中 9 個(gè)<b class='flag-5'>touch</b><b class='flag-5'>命令</b>介紹](https://file.elecfans.com/web1/M00/4F/F1/o4YBAFrphUWAHM_2AAAN86hBd9Y014.jpg)
在Linux下touch的9個(gè)命令示例
![在<b class='flag-5'>Linux</b>下<b class='flag-5'>touch</b>的9個(gè)<b class='flag-5'>命令</b>示例](https://file.elecfans.com/web1/M00/50/48/pIYBAFrxQYmANs9FAAANE-szFdM301.jpg)
評(píng)論