首頁 > 軟體

Linux命令touch——如何修改Linux檔案的時間

2020-06-16 17:50:14

今天因為要寫一個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


IT145.com E-mail:sddin#qq.com