logo
Published on

Bashで特定のファイル以外を全て削除する

Authors

Bashで特定のファイル以外を全て削除する方法についてメモです。

LinuxコマンドラインのBash言語において、マッチ以外、指定以外のファイルをrmコマンドで削除するといったことをしたい場合について。

https://stackoverflow.com/questions/4325216/remove-all-files-except-some-from-a-directoryを見ると、いろんなやり方があるなぁと感心するが、一番簡単で分かりやすいのはやはり以下のやり方だろう。

e.g. rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)

フォルダ内の.wav以外を全て削除 rm !(*.wav)

また、find . -type f -not -name '*.wav' | xargs rmは、空白を含むファイル名がある場合には使用できなかった。