Shell

如何以紀元格式設置文件的 mtime?

  • June 28, 2014

我知道如何以紀元格式獲取文件的 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

引用自:https://unix.stackexchange.com/questions/139673