Как установить mtime файла в формате epoch?

Я знаю, как получить mtime файла в формате epoch:

stat --format=%Y <file> 

Но мне не удалось выяснить, как установить mtime файла в формате epoch. Появляется сообщение «Прикосновение» (1), которое принимает только значение «timestamp» (более или менее фиксированный формат, который использует месяцы, дни, часы, минуты и т. Д.) Или «в основном свободном формате для чтения человеком строки даты».

Есть ли еще одна утилита, над которой я должен смотреть?

Благодарю.

  • BIND 9 прерывисто медленно
  • как удаленно удалять nsupdate?
  • Атрибуты раздела свопинга
  • Можете ли вы Chroot программы из среды OpenVZ?
  • 3 Solutions collect form web for “Как установить mtime файла в формате epoch?”

    По крайней мере, в мире GNU:

     touch --date=@1403970787 file 

    Как с date .

    С perl :

     $ perl -e 'utime (stat($_))[8], time(), $_ for @ARGV' file1 file2 ... 

    Это изменит mtime всех файлов в @ARGV . (stat($_))[8] – это файл файла.

    utime может получать список файлов, если вам не нужно менять atime, вы можете попробовать:

      $ perl -e '$t = time(); utime $t, $t, @ARGV' file1 file2 ... 

    Заметка

    utime зависит от библиотеки времени выполнения C и использует файловая система. см. больше в perldoc -f utime и perldoc perlport .

    С помощью команды touch от GNU coreutils (т. Е. На не встроенных Linux и Cygwin) просмотрите полное руководство (обычно доступное локально в информационном формате) для документации форматов ввода даты . Даты эпох обозначаются префиксом @ :

     touch -d @1234567890 foo 

    Это также работает с BusyBox (по крайней мере, на некоторых системах, это может зависеть от параметров компиляции).

    С * BSD я не думаю, что вы можете сделать это с touch , но вы можете назвать date для форматирования времени эпохи в формат, touch принимает touch .

     touch -d "$(date -r 1234567890 +%Y%m%d%H%M.%S)" foo 

    POSIX, как известно, не имеет возможности манипулировать датами эпохи. Вы можете использовать perl .

    Linux и Unix - лучшая ОС в мире.