Sebagai ekstensi untuk jawaban Shaido saya ingin memberikan beberapa penjelasan mengapa -a
opsi tidak akan berfungsi di sini:
ls
perintah tidak tidak memproses wildcard. Penerjemah baris perintah melakukan langkah ini:
Jika Anda mengetik baris perintah "mycommand *.c
" juru bahasa baris perintah pertama-tama akan mengganti string wildcard "*.c
" dengan daftar file yang cocok dan kemudian jalankan baris perintah yang dihasilkan:
mycommand a.c file.c test.c
Penerjemah baris perintah bekerja dengan cara yang sama untuk semua perintah sehingga tidak dapat mengetahui bahwa -a
berarti "termasuk file tersembunyi" dalam kasus ls
perintah (sementara -a
memiliki arti yang sama sekali berbeda untuk perintah lain)...
File yang dimulai dengan titik disembunyikan dari daftar file secara default. Cara termudah untuk mencocokkan file semacam itu adalah dengan meletakkan titik di awal ekspresi. Namun, ini hanya akan mencocokkan file yang dimulai dengan .
.
ls -al .*.swo
Alternatifnya adalah mengatur dotglob
sebelum menjalankan perintah, maka file dimulai dengan .
akan disertakan.
shopt -s dotglob
Tambahkan ke ~/.bashrc
Anda untuk menyetelnya secara default.
Perhatikan bahwa mengatur dotglob
dapat menyebabkan hasil yang tidak diinginkan saat menggunakan bash shell, karena keduanya .
(direktori saat ini) dan ..
(direktori induk) akan muncul saat menggunakan *
. Dengan dotglob
tetapkan, tidak pernah coba gunakan rm -R *
.