Pertanyaan ini sudah ada jawabannya di sini:
Saya mencoba menggunakan rm -rf !(current)
hapus semua folder di jalur saat ini kecuali current
map.
Tapi saya mendapatkan kesalahan di bawah ini
bash:!: acara tidak ditemukan
Bagaimana cara mendapatkan fungsi ini di bash?
Jawaban:
Anda harus mengaktifkan
extglob
.Misalkan kita memiliki tiga direktori:
Tanpa glob yang luas, hal-hal berikut tidak akan dipahami:
Jika kami mengaktifkan
extglob
, maka dipahami: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
.sumber