Я знаю, как получить файл mtime в формате эпохи:
stat --format=%Y <file>
Но я не смог понять, как установить mtime файла в формате эпохи. Страница man touch (1), по-видимому, принимает только значение «отметки времени» (более или менее фиксированный формат, в котором используются месяцы, дни, часы, минуты и т. Д.) Или «в основном свободная для чтения строка даты человеком».
Есть ли другая утилита, которую я должен изучить?
Благодарю.
shell
timestamps
touch
EIL
источник
источник
Ответы:
По крайней мере, в мире GNU:
Как с
date
.источник
С
perl
:Это изменит mtime всех файлов в
@ARGV
.(stat($_))[8]
время файла.utime
может получить список файлов, если вы не заботитесь об изменении времени, вы можете попробовать:Заметка
utime
зависит от библиотеки времени выполнения C и используемой файловой системы. увидеть больше вperldoc -f utime
иperldoc perlport
.источник
С помощью
touch
команды из GNU coreutils (то есть для не встроенных Linux и Cygwin), посмотрите полное руководство (обычно доступное локально в информационном формате) для документации форматов ввода даты . Даты эпохи указываются с префиксом@
:Это также работает с BusyBox (по крайней мере, в некоторых системах это может зависеть от параметров компиляции).
С * BSD я не думаю, что вы можете сделать это в
touch
одиночку, но вы можете позвонить,date
чтобы отформатировать время эпохи в приемлемый форматtouch
.У POSIX, как известно, нет способов манипулировать датами эпохи. Вы можете использовать Perl .
источник