用法:
touch [選項]... 文件...
將每個文件的訪問時間和修改時間改為當前時間。
不存在的文件將會被創建為空文件,除非使用-c 或-h 選項。
如果文件名為"-"則特殊處理,更改與標准輸出相關的文件的訪問時間。
長選項必須使用的參數對於短選項時也是必需使用的。
參數:
-a 只更改訪問時間
-c, --no-create 不創建任何文件
-d, --date=字符串 使用指定字符串表示時間替代當前時間
-f (忽略)
-h, --no-dereference 會影響符號鏈接本身,替代符號鏈接所指示的目的地
(當系統支持更改符號鏈接的所有者時,此選項才有用)
-m 只更改修改時間
-r, --reference=文件 使用指定文件的時間屬性替代當前時間
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的時間替代當前時間
--time=WORD 使用WORD 指定的時間:access、atime、use 都等於-a
選項的效果,而modify、mtime 等於-m 選項的效果
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
請注意,-d 和-t 選項可接受不同的時間/日期格式。
例:
touch 更新已有文件時間
復制代碼代碼如下:
$ ls -l Firefox_wallpaper.png
-rw-r--r-- 1 siu siu 309597 12月 20 15:03 Firefox_wallpaper.png
$ touch Firefox_wallpaper.png
$ ls -l Firefox_wallpaper.png
-rw-r--r-- 1 siu siu 309597 1月 8 15:18 Firefox_wallpaper.png
touch 無選項,會同時更新文件的修改時間和訪問時間
touch 創建文件
復制代碼代碼如下:
$ touch demo.c
$ ls -l
總用量 372
-rw-r--r-- 1 siu siu 0 1月 8 15:21 demo.c
touch -at 使用參數更新訪問時間
首先看看原來的修改時間和訪問時間,ls -lu用來查看訪問時間
復制代碼代碼如下:
$ ls -l
總用量 68
-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log
$ ls -lu
總用量 68
-rw-r--r-- 1 siu siu 66350 1月 8 15:17 hs_err_pid2874.log
接著是更新過後的修改時間和訪問時間
復制代碼代碼如下:
$ touch -at 01081010 hs_err_pid2874.log
$ ls -l
總用量 68
-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log
$ ls -lu
總用量 68
-rw-r--r-- 1 siu siu 66350 1月 8 10:10 hs_err_pid2874.log
可以看到,修改時間沒有變動,但是訪問時間改變了
touch -m 只更新修改時間
復制代碼代碼如下:
$ ls -l
總用量 68
-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log
$ touch -m hs_err_pid2874.log
$ ls -l
總用量 68
-rw-r--r-- 1 siu siu 66350 1月 8 15:31 hs_err_pid2874.log
$ ls -lu
總用量 68
-rw-r--r-- 1 siu siu 66350 1月 8 10:10 hs_err_pid2874.log
由上面的示例可知,此處訪問時間沒有改變,而修改時間發生了變動
技巧:
1.可以用默認的當前時間來更新文件的訪問時間和修改時間,也可以指定參數來更新
2.通常情況下,touch用的最多的地方還是在於創建新文件