回答:
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
OSに関係なくこれらを実行するポータブルな方法が必要な場合は、いくつかの方法で実行できます。変数を適切なパラメータに1回設定すると思います。
if uname | grep -q "Darwin"; then
mod_time_fmt="-f %m"
else
mod_time_fmt="-c %Y"
fi
そして、stat必要に応じてコマンドでこの値を使用します。
stat $mod_time_fmt .bashrc
のOSXバージョンとUbuntuバージョンにstatは、OSXのstatデフォルトが簡潔な出力であり、Linuxのstatデフォルトが冗長であるいくつかのフープをジャンプする必要があるという点でいくつかの違いがあるためです。OSXで単にエイリアスを使用する1つの可能性は、statが両方で同じように実行されるようにすることです。
エイリアスを設定statしてOSXでの冗長出力を強制alias stat="stat -x"することを気にしなければ、perlは必要ありません。
stat .bashrc| grep Modify Ubuntuで必要なのはこれだけです。上記のようにエイリアスを設定すると、OSXでも機能します
Ubuntu 14.04.5の例Ubuntu 16.04でも実質的に同じ結果が得られます
stat .bashrc| grep Modify
Modify: 2014-03-30 23:14:47.658210121 -0500
タイムスタンプだけが必要な場合は、を削除Modify:して残りを保持できます
stat .bashrc| grep Modify | cut -c 9-
出典: