拡張機能のリストがあります:
avi,mkv,wmv,mp4,mp5,flv,M4V,mpeg,mov,m1v,m2v,3gp,avchd
Linuxのディレクトリにある拡張子のないファイルだけでなく、次の拡張子のないファイルもすべて削除したい。
Rm linuxコマンドを使用してこれを行うにはどうすればよいですか?
まず、これらの拡張子を含まないファイルを見つける必要があります。これは、find
コマンドを使用して非常に簡単に実行できます。次のコマンドでビルドできます-
find /path/to/files ! -name "*.avi" -type f -exec rm -i {} \;
-regex
の代わりに-name
を使用して、複雑な検索パターンを入力することもできます。 !
は検索を無効にします。したがって、これらの拡張子を含まないファイルを効果的に一覧表示します。
削除する前にすべてのファイルが一覧表示されるため、rm -i
を実行することをお勧めします。リストが包括的であると、リストを含めるかどうかを自分で決めることができるため、面倒になる可能性があります。
これを使用して大量のファイルを削除すると、危険になる可能性があります。一度削除すると、元に戻すことはできません。したがって、リストを削除する前に、まずfind
なしでrm
コマンドを実行して、リストを徹底的に検査してください。
更新:
aculich
のコメントで述べられているように、次のこともできます-
find /path/to/files ! -name "*.avi" -type f -delete
-type f
は、find
とdelete
通常のファイルのみを保証し、ディレクトリ、シンボリックリンクなどには触れません。 。
Bashを使用すると、最初にextglobオプションを有効にできます。
$ shopt -s extglob
そして、次のことを行います。
$ rm -i!(*。avi | * .mkv | * .wmv | * .mp4)