GNU ls (yaitu perintah ls pada sistem Linux yang tidak tertanam dan Cygwin, juga tersedia di beberapa unit lain) memiliki opsi untuk menyembunyikan beberapa file, berdasarkan namanya. Tidak ada cara untuk mengabaikan direktori.
ls --hide='t_*' uploads
Pendekatan lain adalah membuat shell Anda melakukan pencocokan. Bash, ksh dan zsh memiliki pola negasi !(t_*)untuk mencocokkan semua file kecuali yang cocok t*; di bash fitur ini perlu dinyalakan shopt -s extglob, dan di zsh perlu dinyalakan setopt ksh_glob. Zsh juga memiliki sintaks ^t_*yang setara yang perlu dinyalakan setopt extended_glob. Ini masih tidak mengabaikan direktori. Zsh memiliki fitur tambahan yang memungkinkan untuk mencocokkan file tidak hanya dengan nama tetapi juga dengan metadata dan lainnya: kualifikasi global . Tambahkan (.)di akhir pertandingan untuk membatasi ke file biasa. Negasi ^adalah bagian dari sintaksis pencocokan nama, jadi ^t_*(.)artinya “semua file biasa tidak cocok t_*” dan bukan “semua file yang bukan file biasa cocok t_*”.
setopt extended_glob # put this in your ~/.zshrc
ls uploads/^t_*(.)
Jika Anda menemukan diri Anda tanpa alat canggih, Anda dapat melakukan ini di unix dengan find. Ini bukan jenis yang biasanya Anda ketik di baris perintah, tetapi kuat dan tepat. Caleb telah menunjukkan bagaimana melakukan ini dengan GNU find . The -maxdepthpilihan adalah tidak portabel; Anda dapat menggunakannya -prunesebagai gantinya, untuk menghentikan findpengulangan secara mudah.
find uploads/* -type d -prune -o \! -type f -name 't_*' -print
Ganti -printdengan -exec ls -lG -- {} +untuk mengeksekusi lsdengan opsi favorit Anda pada file.
Semua perintah di atas menyembunyikan file dot (yaitu file yang namanya dimulai dengan a .). Jika Anda ingin menampilkannya, teruskan -Ake ls, atau tambahkan Dkualifikasi glob di zsh ( ls uploads/^t_*(.D)). Dengan find, Anda dapat menggunakan pendekatan yang berbeda untuk membuatnya hanya muncul satu tingkat ( findtidak memperlakukan file dot secara khusus). Ini hanya berfungsi jika Anda menjalankan finddi direktori saat ini.
cd uploads && find . -name . -o -type d -prune -o \! -type f -name 't_*' -print