指定されたファイルを除いて、フォルダ内のすべてのファイルを削除する方法は?

指定されたファイルを除いて、フォルダ内のすべてのファイルを削除する方法は?

名前に共通点がない指定された一部のファイルのみを維持しながら、ディレクトリ内のすべてのファイルを削除したいと思います。どうすればいいですか?

たとえば、保持するファイル名は次のとおりです。

file_1.png、、、another_file.jpgsome_music.mp3

ベストアンサー1

バッシュを使用する場合:

shopt -s extglob
rm -- !(file1|file2|file3)

最初の行は、拡張パターンマッチングを有効にした後、次のいずれかを使用します。

!(pattern-list)与えられたパターンの1つを除くすべての項目と一致

パターンリストは、で区切られた1つ以上のパターンのリストです|


またはzsh

setopt extendedglob
rm -- ^(file1|file2)

または、より移植性が高い場合は、以下を使用してくださいfind

find . -maxdepth 1 ! -name 'file1' ! -name 'file2' -type f -exec rm -v {} +

おすすめ記事