歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux命令touch——如何修改Linux文件的時間

Linux命令touch——如何修改Linux文件的時間

日期:2017/2/28 13:56:45   编辑: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

Copyright © Linux教程網 All Rights Reserved