特定のフォルダ内の他のファイルより前の日付になるようにファイルの日付を変更する

特定のフォルダ内の他のファイルより前の日付になるようにファイルの日付を変更する

ファイルの日付を変更したい文書ディレクトリに存在するよりも古いものにするには目次。ただ古いものにするために古いものを作ることが目標であるため、時差の価値は重要ではありません。

これを行うには、touch file現在の日付値より前の日付値を使用する必要があります。目次。最も古いファイルの日付値を回復する方法目次そしてそこから一定時間(例えば1秒)を引くといいでしょうか?

ベストアンサー1

find-printf'sまたはwithを使用してタイムスタンプを取得してstatソートして、最も古いタイムスタンプを取得できます。次に、必要なものを除き、それを日付基準として使用しますtouchfind欠点は、計算時に削除する必要がある分数秒を印刷することです。

oldest=$(stat -c "%Y" dir/*|sort|head -1)
touch -d "@$((oldest-1))" dir/file
# or touch -d "@$((oldest-60))" file # subtract 1 min to see the difference in normal ls -l output.

-d @seconds-since-epochGNU touchは日付構文をサポートしています。 POSIXはこれを指定しません。

このstatコマンドは POSIX では指定されず、GNU coreutils の一部です。https://stackoverflow.com/questions/27828585/posix-analog-of-coreutils-stat-command

したがって、このソリューションはLinuxシステムでは機能しますが、通常のUNIXシステムでは機能しない可能性があります。

おすすめ記事