回答:
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-
出典: