Назад | Перейти на главную страницу

touch -d '20 секунд назад 'не работает в alpine

Я пытаюсь использовать

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