サブフォルダーの最後の変更時刻を、その中の最も古いファイルの最後の変更時刻に変更します。

サブフォルダーの最後の変更時刻を、その中の最も古いファイルの最後の変更時刻に変更します。

こんにちは。各サブフォルダで最も古いファイルに基づいて、すべてのサブフォルダの最後の変更日を検索して変更する方法を知りたいです。

Ubuntuフォルダ構造の例:

home/incoming/media/Something.something.1234/

または

/Soemthing Soemthing 1234/

これは、ドットのあるフォルダとないフォルダがあることを意味します。ドットのあるファイルとドッ​​トのないファイルも同じです。

ファイルは主にMKVメディアファイルであり、いくつかのmp4かもしれません。

また、スクリプトにはサブフォルダがないため、メディアフォルダのルートにあるmkvファイルまたはmp4ファイルもスキップする必要があります。

答え1

存在するzsh

for dir in path/to/media/*(NF); do
  oldest=( $dir/*.(mp4|mkv)(N.Om[1]) )
  if (( $#oldest )) touch -r $oldest -- $dir
done

ディレクトリの最後の変更時刻は、ディレクトリエントリが追加、削除、または名前が変更されるたびに更新されるため、長期間持続しない可能性がありtouchます。

関連情報