- Published on
Bashで特定のファイル以外を全て削除する
- Authors
- Name
- Shou Arisaka / 有坂翔
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
は、空白を含むファイル名がある場合には使用できなかった。