Hapus Semua file kecuali file spesifik dalam bash [duplikat]

Jawaban:

3

Anda harus mengaktifkan extglob.

Misalkan kita memiliki tiga direktori:

$ ls -d */
current/  future/  past/

Tanpa glob yang luas, hal-hal berikut tidak akan dipahami:

$ echo !(current)
bash: syntax error near unexpected token `('

Jika kami mengaktifkan extglob, maka dipahami:

$ shopt -s extglob
$ echo !(current)
future past

Ini berhasil cocok dengan semua file kecuali current.

Perhatikan bahwa tanda seru, !, adalah karakter bash-active. Itu bisa memanggil ekspansi sejarah yang, jika gagal, menghasilkan kesalahan yang Anda amati. Jika Anda tidak menggunakan ekspansi riwayat, Anda mungkin ingin mematikannya: set +H.

John1024
sumber
Saya menggunakan ekspansi sejarah. Bagaimana cara menggunakan perintah yang sama tanpa bertentangan itu
Reddy