Bash
touch -d ‘20 seconds ago’ 在高山不工作
我正在嘗試使用
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.
在 Alpine Linux 上,
touch
確實符號連結到 BusyBox。對於 GNU touch,安裝
coreutils
提供/bin/touch的 GNU 包:
apk add coreutils
這將適用於 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 等)的幾乎任何實現,儘管POSIXdate
沒有指定%s
並且POSIXtouch
沒有指定-d@epoch
(並且 BSD/OSX 沒有t 實施它)。