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

Bashのファイル名拡張メカニズムから一部のファイルを除外するにはどうすればよいですか?

ルートディレクトリにubuntuファイルシステムディレクトリがあり、誤って何百ものファイルをルートディレクトリにコピーしてしまいました。

のようなファイルシステムを除外してコピーしたファイルを直感的に削除しようとしました
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.

buそれは動作しません。全体を削除するときに一部のディレクトリを除外する適切な方法は何ですか?

編集:何をすべきかを知らずに、ここでコマンドを試してはいけません!

承認された回答:

bashを使用しているため :

shopt -s extglob
echo rm -rf ./!(bin|sbin|usr|...)

echoを追加することをお勧めします コマンドラインの最初で、システム全体を爆破する可能性のあるものを実行しているとき。結果に満足している場合は削除してください。

注:上記のコマンドでは、非表示のファイル(名前がドットで始まるファイル)は削除されません。それらも削除したい場合は、dotglobもアクティブにしてください オプション:

shopt -s dotglob

Linux
  1. フォルダに触れずにファイルから実行権限を再帰的に削除するにはどうすればよいですか?

  2. Ubuntu でゴミ箱からファイルを削除するにはどうすればよいですか?

  3. ファイル B に表示される行を別のファイル A から削除するには?

  1. bash履歴から重複を削除するにはどうすればよいですか?

  2. 正規表現を使用して TAR アーカイブからファイルを除外する方法は?

  3. ファイル名から無効な文字を削除するには?

  1. Linuxで特定のサイズのファイルをコピーから除外する方法

  2. Rm -rfから一部のファイルを除外することは可能ですか?

  3. フルパスから拡張子なしでファイル名を抽出する方法は?