備份、測試... 很常會使用到時間,在 Linux CLI 想要將檔案的時間 設定成 未來的時間,或者指定的時間,要怎麼做呢?
Linux 使用 touch 設定檔案修改時間
Linux 常常使用 touch 來建立空檔案,或者將某個檔案「修改時間」設定為現在,要指定時間(過去、未來)、設定檔案 GMT 時間都可以~
- 註:修改完,可以用 stat 查看詳細的檔案資訊
stat 操作範例
- touch test.txt
- stat test.txt
File: test.txt Size: 0 Blocks: 0 IO Block: 4096 普通空白檔案 Device: 24h/36d Inode: 104235 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ test) Gid: ( 1000/ test) Access: 2019-01-06 09:28:25.312318447 +0800 Modify: 2019-01-06 09:28:25.312318447 +0800 Change: 2019-01-06 09:28:25.312318447 +0800 Birth: -
使用 touch 修改時間
touch --help 可以查看詳細參數
下述只有寫 touch 參數,stat 就自行查看囉~
- touch -m test.txt # 修改 modify time 為現在
- touch -a test.txt # 修改 access time 為現在
touch 指定時間可以使用 -t、-d 的參數,兩者支援的輸入格式不同
- -t STAMP:use [[CC]YY]MMDDhhmm[.ss] instead of current time
- CC:年份的前兩位
- YY:年份的後兩位
- -d STRING:parse STRING and use it instead of current time
- -t、-d 都會同時修改 Access 與 Modify time
操作範例
- touch -t 1901120958.27 test.txt # 2019-01-12 09:58:27
- touch -t 201901120958.27 test.txt # 2019-01-12 09:58:27
- 19、2019 都是可以用的
- touch -d '10-December-2013' test.txt # 2013-12-10
- touch -d 2018-12-30 test.txt # 2018-12-10
- touch -d GMT3 test.txt # 時區修改,改為 GMT3 時區