7307


あるディレクトリに対し再帰的にゆっくり削除をかけていきたいと思っています。

[code]

    find . -exec sleep 1 \; -delete
    
[/code]

このコマンドでほぼ満たされるのですが、ディレクトリは削除せずに残しておきたいのです。  
どのようにするとできそうでしょうか？よろしくお願いします。


CC BY-SA 3.0
2015-03-02T02:25:33.087
7304
2015-03-02T03:13:01.567
2772
question
linux bash
再帰的にゆっくりファイルだけを削除するコマンド

[code]

    find . ! -type d -exec sleep 1 \; -delete
    
[/code]

これでいかがでしょうか。


CC BY-SA 3.0
2015-03-02T02:45:14.933
7307
2015-03-02T02:45:14.933
7926
7304
answer


別解です。  
rm コマンドは、ディレクトリを消さないので、こういう書き方もあります。

[code]

    find . -exec echo {} \; | while read f; do sleep 1; rm $f; done
    
[/code]

利点: do に複数コマンドを書けるのでログ出力つけたくなった時に便利です。  
ひとつのファイル/リンクを消すための待ち時間を揃えるには、Shirone さんの回答にある「! -type d」を使うのが良いです。


CC BY-SA 3.0
2015-03-02T03:13:01.567
7309
2015-03-02T03:13:01.567
5299
7304
answer