Mengenai dokumentasi ls(1) (man ls
):
-A, --hampir-semua tidak mencantumkan implied . dan ..
yang Anda butuhkan (tanpa argumen tambahan seperti .*
):
ls -A
atau lebih baik lagi:
/bin/ls -A
Saya memiliki situasi di mana saya ingin menghapus serangkaian direktori titik. Di server saya, kami menandai direktori untuk dihapus dengan menambahkan titik dan pola teks tertentu lainnya (stempel waktu) untuk penghapusan otomatis. Terkadang saya perlu melakukannya secara manual.
Seperti yang saya komentari pada balasan Basile Starynkevitch, ketika Anda menggunakan pola globbing seperti yang ada di bawah -A sakelar kehilangan fungsinya dan berfungsi seperti -a:
[email protected]:~/scripts$ ls -1dA .*
.
..
.comparepp.sh.swp
Ini pasti akan memberikan kesalahan jika saya mencoba menghapus file sebagai pengguna, tetapi saya hanya tidak ingin memikirkan apa yang bisa terjadi sebagai root (!)
Pendekatan saya dalam hal ini adalah:
for dir in $(ls -1ad .* | tail -n +3) ; do rm -rfv $dir ; done
Saya mengeluarkan 2 baris pertama yang berisi titik-titik seperti yang Anda lihat. Untuk menyesuaikan jawaban atas pertanyaan yang diajukan, ini akan berhasil:
ls -d1A .* | tail -n +3
$ ls -lA
berfungsi paling baik untuk kebutuhan saya.
Untuk kenyamanan, saya sarankan untuk mendefinisikan alias di dalam .bashrc-file sebagai berikut:
alias ll='ls -lA'