Mac(snow leopard)のbashスクリプトには、パスとファイル名があり、そのファイルの変更された日付/時刻を取得する必要があります。私は私ができることがわかりました:stat -f "%m" $MYFILE
ただし、これはエポックの日付/時刻であると私が想定しているものを返します。日付/時刻の形式が必要です:YYYYMMDDThhmmss
。どうやらGNUに依存していると思われるあらゆる種類のオプション(date
など)を見つけましたが、私のMacにはありません。
Mac(BSD?)bashでユーザー指定の形式でファイルの日付/時刻を変更する標準的な方法は何ですか?または、少なくとも、上記のstat
呼び出しの結果を渡すことができる日付/時刻の書式設定関数。
これは実際には非常に単純ですが、GNU date
とは十分に異なるため、明らかとは言えません。
date -r $TIMESTAMP +%Y%m%dT%H%M%S
stat
を取得してフォーマットを行うには:
stat -f "%Sm" -t "%Y%m%dT%H%M%S" FILE
# how-to list all the files and dir in a dir sorted by their
# modified time in the different shells
# usually mac os / Unix / FreeBSD stat
stat -f "%Sm %N" -t "%Y-%m-%d %H:%M:%S" ~/opt/comp/proj/*|sort
# STDOUT output:
# 2018-03-27 15:41:13 ~/opt/comp/proj/foo
# 2018-03-28 14:04:11 ~/opt/comp/proj/bar
# GNU Utils ( usually on Linux ) stat
# STDOUT output:
stat -c "%y %n" ~/opt/comp/proj/*|sort
# 2018-03-29 09:15:18.297435000 +0300 ~/opt/comp/proj/bar
# 2018-03-29 09:15:18.297435000 +0300 ~/opt/comp/proj/foo