GNU/Linux >> Belajar Linux >  >> Linux

Hapus Semua File/direktori Kecuali Satu File?

Saya memiliki direktori yang berisi banyak file. Saya ingin menghapus semua file kecuali file.txt . Bagaimana cara melakukannya?

Ada terlalu banyak file untuk menghapus file yang tidak diinginkan satu per satu dan namanya terlalu beragam untuk digunakan * untuk menghapus semuanya kecuali file yang satu ini.

Seseorang menyarankan menggunakan

rm !(file.txt)

Tapi itu tidak berhasil. Ini mengembalikan:

Badly placed ()'s 

OS saya adalah Scientific Linux 6.

Ada ide?

Jawaban yang Diterima:

POSIXly:

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

akan menghapus semua file biasa (secara rekursif, termasuk yang tersembunyi) kecuali file.txt . Untuk menghapus direktori, ubah -type f untuk -type d dan tambahkan -r pilihan untuk rm .

Di bash , untuk menggunakan rm -- !(file.txt) , Anda harus mengaktifkan extglob:

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

(atau memanggil bash -O extglob )

Perhatikan bahwa extglob hanya berfungsi di bash dan keluarga cangkang Korn. Dan menggunakan rm -- !(file.txt) dapat menyebabkan Argument list too long kesalahan.

Dalam zsh , Anda dapat menggunakan ^ untuk meniadakan pola dengan extendedglob diaktifkan:

$ setopt extendedglob
$ rm -- ^file.txt

atau menggunakan sintaks yang sama dengan ksh dan bash dengan opsi ksh_glob dan no_bare_glob_qual diaktifkan.


Linux
  1. 3 Cara Menghapus Semua File di Direktori Kecuali Satu atau Beberapa File dengan Ekstensi

  2. Satu Liner Untuk Memeriksa Ada File?

  3. Bagaimana Cara Menghapus Semua File Kecuali Satu File Bernama Dari Folder Tertentu?

  1. Linux:hapus ekstensi file untuk banyak file

  2. tautan simbolik:temukan semua file yang terhubung ke file ini

  3. Atur nginx.conf untuk menolak semua koneksi kecuali ke file atau direktori tertentu

  1. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  2. Cara Menghapus Semua File Dalam Folder Kecuali Satu File Tertentu Di Linux

  3. Bagaimana cara mengatur izin file default untuk semua folder/file dalam direktori?