GNU/Linux >> Linux の 問題 >  >> Linux

1つのファイルを除くすべてのファイル/ディレクトリを削除しますか?

多数のファイルを含むディレクトリがあります。 file.txt以外のすべてのファイルを削除したい。どうすればよいですか?

ファイルが多すぎて不要なファイルを個別に削除できず、名前が多すぎて*この1つのファイル以外のすべてのファイルを削除できません。

誰かが使用を提案しました

rm !(file.txt)

しかし、それは機能しません。戻ります:

Badly placed ()'s 

私のOSはScientificLinux6です。

何かアイデアはありますか?

承認された回答:

可能性:

find . ! -name 'file.txt' -type f -exec rm -f {} +

file.txtを除くすべての通常のファイル(非表示のファイルを含む)を再帰的に削除します 。ディレクトリを削除するには、-type fを変更します to -type d -rを追加します rmのオプション 。

bashで 、rm -- !(file.txt)を使用するには 、extglobを有効にする必要があります:

$ shopt -s extglob 
$ rm -- !(file.txt)

(またはbash -O extglobを呼び出す )

extglobに注意してください bashでのみ機能します とKornシェルファミリー。そして、rm -- !(file.txt)を使用します Argument list too long エラー。

zshで 、^を使用できます extendedglobを有効にしてパターンを無効にするには:

$ setopt extendedglob
$ rm -- ^file.txt

または、kshで同じ構文を使用します およびbash オプション付きksh_glob およびno_bare_glob_qual 有効。


Linux
  1. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  2. 検索を使用して特定のディレクトリを検索し、1つのディレクトリを除くその中のすべてのファイルを削除しますか?

  3. 特定のフォルダから1つの名前付きファイルを除くすべてのファイルを削除するにはどうすればよいですか?

  1. Linux:複数のファイルのファイル拡張子を削除する

  2. シンボリック リンク:このファイルにリンクしているすべてのファイルを検索します

  3. すべてのファイル拡張子を小文字に変換する

  1. ファイルを検索して 1 つの zip ファイルに圧縮する方法

  2. X よりも古いすべてのファイルを含むディレクトリを検索しますか?

  3. nginx.conf を設定して、特定のファイルまたはディレクトリ以外のすべての接続を拒否します