2021-05-12 14:32:11
Linux命令touch——如何修改Linux檔案的時間
今天因為要寫一個Linux下的定時任務,就是刪除三個月前的檔案,寫好了,需要測試下。但是苦於當前的Linux的系統找不到三個月前的檔案。那就想到兩種方案:1.修改os的時間,把系統時間調到三個月以後。這是一個辦法。2.修改檔案本身的建立時間。前面一個辦法似乎見過的,後面的,只是此時想了,但是還不知道怎麼辦。那就嘗試第二種辦法。去網上搜了下,知道touch命令可以搞定(最早知道touch,是因為需要它來幫忙建立一個新的file,O(∩_∩)O~沒想到它的用處還蠻多的嘛)。記錄了下來。
我特意檢視了下touch的Linux下的幫助,確實可以使用引數d來實現,幫助裡是這樣描述的:
-d, --date=STRING
parse STRING and use it instead of current time
這完全符合我的要求。
先把touch的引數說明貼在這裡:
命令引數:
-a 或--time=atime或--time=access或--time=use 只更改存取時間。
-c 或--no-create 不建立任何文件。
-d 使用指定的日期時間,而非現在的時間。
-f 此引數將忽略不予處理,僅負責解決BSD版本touch指令的相容性問題。
-m 或--time=mtime或--time=modify 只更改變動時間。
-r 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同。
-t 使用指定的日期時間,而非現在的時間。
--no-create 不會建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。
此處就使用簡單的修改檔案時間——————
範例:將我系統裡某些檔案修改為三個月前的時間:
當前系統檔案資訊如下:
[root@linuxidc test]# ls -l
total 28
drwxr-xr-x 2 root root 4096 Jan 9 15:47 1333
-rwxrwxr-x 1 Oracle oinstall 8143 Jan 9 14:41 3.sh
drwxr-xr-x 2 root root 4096 Jan 9 15:49 444
-rw-r--r-- 1 root root 0 Jan 9 14:41 4.sh
-rwxr-xr-x 1 root root 8143 Jan 9 14:44 77.sh
-rwxrwxr-x 1 root root 54 Jan 9 16:03 find.sh
我想把所以的.sh檔案修改到三個月前(2013年10月13)的時間。操作命令:
[root@linuxidc test]# touch -d "10/13/2013" *.sh
結果是:
[root@linuxidc test]# ls -l
total 28
drwxr-xr-x 2 root root 4096 Jan 9 15:47 1333
-rwxrwxr-x 1 oracle oinstall 8143 Oct 13 00:00 3.sh
drwxr-xr-x 2 root root 4096 Jan 9 15:49 444
-rw-r--r-- 1 root root 0 Oct 13 00:00 4.sh
-rwxr-xr-x 1 root root 8143 Oct 13 00:00 77.sh
-rwxrwxr-x 1 root root 54 Oct 13 00:00 find.sh
另外也可以單獨修改時間或者月份,如下
以使用 am, pm 或是 24 小時的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/124813.htm
相關文章