使用できるように、ファイルの変更日をインポートする必要がありますtouch -m
。
stat
それともperl -le 'print((stat shift)[9])'
私が望むものを返しません。 -と+を使うべきだと思いますが、正しく使う方法がわかりません。
Iを使用して-t
別の方法で設定することも可能ですが、ここでは2013年7月3日に設定しようとしています。
touch -t 20130703
しかし、それは私が望むように変わりませんでした。では、質問に戻り、 を使用して設定できるように、他のファイル属性をどのようにコピーしますかtouch -m
?
ベストアンサー1
stat
コマンドを使用して、返された時間をperl
目的の形式に変換できます。date
(GNU coreutilsがインストールされていると仮定):
# Convert UNIX time returned by perl to year+month+day
$ date -d @$(perl -le 'print((stat shift)[9])' FILENAME) +%Y%m%d
20130703
# Convert formatted time returned by GNU stat to year+month+day
$ date -d "$(stat -c %y FILENAME)" +%Y%m%d
20130703
date
また、ファイル変更時間を直接提供することもできます。
$ date -r FILENAME +%Y%m%d
20130703
詳細については、次を参照してください。GNU日付マニュアルページ(man date
)。