Bash
stat:文件的修改時間戳
我用來
stat -f %m .bashrc
在 osx 上獲取 .bashrc 的修改時間。但是當我在 ubuntu 上執行相同的命令時,它會吐出錯誤:
stat: cannot read file system information for %m': No such file or directory
有沒有兼容的方法來實現這一點?
Ubuntu 使用 GNU coreutils
stat
,而 OSX 使用 BSD 變體。所以在 Ubuntu 上,命令有點不同:stat -c %Y .bashrc
來自
man stat
:-c --format=FORMAT use the specified FORMAT instead of the default; output a new‐ line after each use of FORMAT
和:
%Y time of last data modification, seconds since Epoch
如果您想要一種便攜的方式來執行這些而不考慮作業系統,那麼有幾種方法可以做到這一點。我想我會為適當的參數設置一個變數:
if uname | grep -q "Darwin"; then mod_time_fmt="-f %m" else mod_time_fmt="-c %Y" fi
stat
然後在需要時在命令中使用此值:stat $mod_time_fmt .bashrc