4

指定された拡張子を持つファイルを除いて、指定された名前のディレクトリ内のすべてのファイルを削除したい。つまり、次のディレクトリがあります。

foo.txt foo.exe foo.jpg foo.png foo.something foo.somethingelse bar.jpg bar.exe

取り除きたいfoo.txt foo.jpg foo.png foo.something foo.somethingelse

しかし、決定的に私は取り除きたくないfoo.exe

これを行うのに簡単なワンライナーはありますか?

ありがとうございました

4

1 に答える 1

7

!コマンド内で物事を除外するために使用できるfindので、次のようになります。

find . -maxdepth 1  -type f  -name "foo.*"  ! -name foo.exe  -exec rm '{}' \;
       -----------  -------  -------------  ---------------  ----------------
       in this dir   files    named foo.*   but not foo.exe  ...destroy them.

foo.*これにより、現在のディレクトリで一致するファイルが削除されますが、そのままにしておきfoo.exeます。

于 2012-06-18T11:09:10.170 に答える