Shell
如何以紀元格式設置文件的 mtime?
我知道如何以紀元格式獲取文件的 mtime:
stat --format=%Y <file>
但我一直無法弄清楚如何以紀元格式設置文件的 mtime。touch(1) 手冊頁似乎只接受“時間戳”值(或多或少的固定格式,使用月、日、小時、分鐘等)或“大多數自由格式的人類可讀日期字元串”。
我應該研究另一個實用程序嗎?
謝謝。
至少在 GNU 世界中:
touch --date=@1403970787 file
與
date
.
使用
touch
來自 GNU coreutils 的命令(即在非嵌入式 Linux 和 Cygwin 上),查看日期輸入格式文件的完整手冊(通常在本地以資訊格式提供)。紀元日期用前綴表示:@
touch -d @1234567890 foo
這也適用於 BusyBox(至少在某些系統上,它可能取決於編譯選項)。
使用 *BSD,我認為您不能
touch
單獨執行此操作,但您可以呼叫date
將紀元時間格式化為touch
可接受的格式。touch -d "$(date -r 1234567890 +%Y%m%d%H%M.%S)" foo
眾所周知,POSIX 缺乏操縱紀元日期的方法。您可以使用 perl。