2016-11-02 15 views
0

私のラズベリーパイには、jpgファイルがたくさんあります。 1.jpg以外のすべてのjpgファイルを削除します。シェルスクリプトでこれをどうすればできますか?シェルの "1.jpg"以外のjpgファイルをすべて削除するには

+1

は、例外の名前を変更するスクリプトを使用し、その後、名前のパターンに一致するすべてのファイルを削除し、最終的にはその例外ファイルをバック再名前を変更元の名前に戻します。 – arkascha

答えて

3

findを使用できます。

find . -name \*.jpg \! -name 1.jpg -exec rm {} \; 

これが間違っていると、大量のファイルを簡単に削除することができます。どのファイルが削除されるかを確認するには、まず「ドライラン」を実行します。

find . -name \*.jpg \! -name 1.jpg -exec echo "rm {}" \; 
1

あなたが否定のためにextended glob patternを使用することができますが(バッシュが必要です):

$ shopt -s extglob 
$ ls 
1.jpg 2.jpg name.jpg 
$ ls !(1).jpg 
2.jpg name.jpg 
$ rm !(1).jpg 
$ ls 
1.jpg 
関連する問題