フォルダのタイムスタンプを最新のファイルに再帰的に変更するには?

フォルダのタイムスタンプを最新のファイルに再帰的に変更するには?

フォルダ内のファイルの最新のタイムスタンプに基づいてフォルダのタイムスタンプを再帰的に変更する方法を知っている人がいるかどうか疑問に思います。

たとえば、

jon@UbuntuPanther:/media/media/MP3s/Foo Fighters/(1997-05-20) 色と形 $ ls -alF
合計 55220
drwxr-xr-x 2 JonJon4096 2010-08-30 12:34 ./
drwxr-xr-x 11 Jon Jon4096 2010-08-30 12:34 ../
-rw-r--r-- 1 jon jon 1694044 2010-04-18 00:51 Spitfire-Doll.mp3
-rw-r--r-- 1 jon jon 3151170 2010-04-18 00:51 スピットファイアほど十分なスペース.mp3
-rw-r--r-- 1 jon jon 5004289 2010-04-18 00:52 Spitfire-Everlong.mp3
-rw-r--r-- 1 jon jon 5803125 2010-04-18 00:51 Spitfire-February Star.mp3
-rw-r--r-- 1 jon jon 4994903 2010-04-18 00:51 フーファイターズ - こんにちは、ジョニーパーク! .mp3
-rw-r--r-- 1 jon jon 4649556 2010-04-18 00:52 スピットファイア - モンキーレンチ.mp3
-rw-r--r-- 1 jon jon 5216923 2010-04-18 00:51 Spitfire-My Hero.mp3
-rw-r--r-- 1 jon jon 4294291 2010-04-18 00:52 Foo Fighters - My Poor Brain.mp3
-rw-r--r-- 1 jon jon 6778011 2010-04-18 00:52 Spitfire- New Way Home.mp3
-rw-r--r-- 1 jon jon 2956287 2010-04-18 00:51 Foo Fighters - Goodbye.mp3
-rw-r--r-- 1 jon jon 2730072 2010-04-18 00:51 Foo Fighters - Up in Arms.mp3
-rw-r--r-- 1 jon jon 6086821 2010-04-18 00:51 Foo Fighters - Follow You.mp3
-rw-r--r-- 1 jon jon 3033660 2010-04-18 00:52 Foo Fighters - Wind Up.mp3

「(1997-05-20)The Color and The Shape」フォルダのタイムスタンプは2010-04-18 00:52に設定されています。

ベストアンサー1

現在の時間(または)のtouch -r代わりに他のファイルのタイムスタンプを使用できます。touch --reference=FILE

これには2つの解決策があります。各ソリューションでは、最初のコマンドはディレクトリの変更時間をすぐ下にある最新のファイルの修正時間に変更し、2番目のコマンドはディレクトリツリー全体を繰り返し表示します。cd '.../(1997-05-20) The Colour and The Shape'コマンドを実行する前にディレクトリ()に変更してください。

zshから(Dドットファイルを無視するために削除されました):

touch -r *(Dom[1]) .
touch -r **/*(Dom[1]) .

Linuxでは(またはより一般的にGNU findを使用して):

touch -r "$(find -mindepth 1 -maxdepth 1 -printf '%T+=%p\n' |
            sort |tail -n 1 | cut -d= -f2-)" .
touch -r "$(find -mindepth 1 -printf '%T+=%p\n' |
            sort |tail -n 1 | cut -d= -f2-)" .

ただし、これはファイル名に改行文字がないと仮定します。

おすすめ記事