Я пытаюсь использовать
touch -d '20 seconds ago' file.txt
Что работает в Ubuntu, но не в Alpine. Кто-нибудь знает, есть ли дополнительный пакет, который это делает, или он не поддерживается самой Alpine?
РЕДАКТИРОВАТЬ:
# touch --help
BusyBox v1.28.4 (2018-12-06 15:13:21 UTC) multi-call binary.
Это будет работать с busybox touch
& date
без необходимости устанавливать GNU coreutils:
touch -d@$(( $(date +%s) - 20 )) file.txt
Это вычисляет дату из времени эпохи, вычитает 20 секунд и передает это как желаемое время для touch
использовать.
Я тестировал это с помощью BusyBox 1.30.1 (через busybox touch -d@$(( $(busybox date +%s) - 20 )) file.txt
)
Также обратите внимание, что это будет работать с версиями этих команд GNU, а также почти с любой реализацией date
(GNU, BSD, OS X, BusyBox и т. Д.), Хотя POSIX date
не указывает %s
и POSIX touch
не указывает -d@epoch
(и BSD / OSX этого не поддерживает).
В Alpine Linux touch
действительно имеет символическую ссылку на BusyBox.
Для GNU Touch установите GNU coreutils
пакет, который предоставляет / bin / touch:
apk add coreutils