touch -mで使用できる変更された日付を取得します。

touch -mで使用できる変更された日付を取得します。

使用できるように、ファイルの変更日をインポートする必要があります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)。

答え2

stat -f %m -t %Y%m%d%H%M.%S myfile

これにより、希望の形式でタイムスタンプが印刷されますtouch -t

タイムスタンプはローカルタイムゾーンで表されます。これは、タイムゾーン間でファイルを移動したり、DSTが適用されているタイムゾーンから夏から冬に切り替えるときに繰り返される時間のタイムスタンプには適していない可能性があります。タイムゾーンの問題を回避するには、UTCタイムスタンプを使用してください。

timestamp=$(TZ=UTC stat -f %m -t %Y%m%d%H%M.%S myfile)
TZ=UTC touch -t "$timestamp" myotherfile

これは、statGNUまたはBusyBoxstatユーティリティ(Linuxのユーティリティなど)ではなく、BSDユーティリティ(OSXに付属のユーティリティなど)に適用されます。

答え3

簡単に編集できる他の多くの情報がありますが、「ls -otr --time-style=+%Y%m%d%H%M.%S」を実行すると、正しい形式の日付が得られます。

これは、エイリアスを割り当てて出力をファイルにリダイレクトするときに便利です。

答え4

質問にタグが付けられたので、ユーザーがmacOSを使用しているとします。

macOSのユーティリティには、そのtouchオプションを使用する-mときにファイルの修正タイムスタンプを設定する機能があります。問題は、touch -m単一のファイルを「参照ファイル」として使用して、複数のファイルの修正タイムスタンプを設定する方法を見つけることです。

statユーザーは参照ファイルから修正タイムスタンプを解析することをお勧めしますが、touchmacOSのユーティリティは次のコマンドを使用して直接実行できます-r file

touch -m -r reference_file file1 file2 file3

file1上記のコマンドは、およびfile2の変更タイムスタンプをfile3ファイル名の変更タイムスタンプと同じタイムスタンプに設定しますreference_file

ユーザーが(いつでも)どこかにあるファイルまたはディレクトリの元のタイムスタンプを追跡したい場合コメントから)、後で復元できるように空のファイルを作成し、上記のようにしてtouch -mタイムスタンプを設定します-r。いつでもタイムスタンプを解析する必要はありませんstat

# create an empty file to hold the original timestamp
touch -m -r original empty

# do stuff to the original

# restore timestamp on the original
touch -m -r empty original
rm empty

関連情報