GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mengecualikan Beberapa File Dari Mekanisme Perluasan Nama File Di Bash?

Saya memiliki direktori sistem file ubuntu di direktori root dan saya tidak sengaja menyalin ratusan file ke direktori root.

Saya secara intuitif mencoba menghapus file yang disalin dengan mengecualikan sistem file seperti

rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.

tapi itu tidak berhasil. Apa cara yang tepat untuk mengecualikan beberapa direktori saat menghapus keseluruhan?

EDIT:Jangan pernah mencoba perintah apa pun di sini tanpa mengetahui apa yang harus dilakukan!

Jawaban yang Diterima:

Karena Anda menggunakan bash :

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

Saya sarankan untuk menambahkan echo di awal baris perintah ketika Anda menjalankan sesuatu yang berpotensi dapat meledakkan seluruh sistem. Hapus jika Anda puas dengan hasilnya.

Catatan:Perintah di atas tidak akan menghapus file tersembunyi (yang namanya dimulai dengan titik). Jika Anda ingin menghapusnya juga, aktifkan juga dotglob pilihan:

shopt -s dotglob

Linux
  1. Apakah Mungkin Untuk Mengecualikan Beberapa File Dari Rm -rf??

  2. Bagaimana cara menghapus file dari tempat sampah di Ubuntu?

  3. Bagaimana Anda bisa menghapus duplikat dari riwayat bash?

  1. Bagaimana cara mengekstrak nama file tanpa ekstensi dari path lengkap?

  2. Bagaimana cara mengecualikan file dari arsip TAR menggunakan ekspresi reguler?

  3. Bagaimana cara mengecualikan beberapa pengguna dari layar Linux Top?

  1. Cara Mengecualikan File Ukuran Tertentu Dari Menyalin Di Linux

  2. Bagaimana Cara Menghapus Izin Jalankan Secara Rekursif Dari File Tanpa Menyentuh Folder?

  3. Bagaimana cara menghapus garis yang muncul pada file B dari file A lainnya?