Saya pikir Anda ingin menggunakan fitur shell, bukan ls
. Saya menggunakan bash, jadi saya memeriksa apa yang Anda inginkan man bash
. Cari "^ EXPANSION", (dengan terlebih dahulu menekan '/'). Kutipan:
EKSPANSI
Ekspansi dilakukan pada baris perintah setelah dipecah menjadi kata-kata. Ada jenis tujuh ekspansi yang dilakukan: ekspansi brace , tilde ekspansi , parameter dan ekspansi variabel , substitusi perintah , ekspansi aritmatika , kata membelah , dan ekspansi pathname .
︙
... <snip> ...
︙
Perluasan Pathname
Setelah kata membelah, kecuali -f pilihan telah ditetapkan, pesta memindai setiap kata untuk karakter *
, ?
dan [
. Jika salah satu karakter ini muncul, maka kata tersebut dianggap sebagai pola , dan diganti dengan daftar nama file yang diurutkan berdasarkan abjad yang cocok dengan pola tersebut. ...
Saya baru-baru ini mulai mengecualikan file berdasarkan huruf pertama mereka, dengan perintah seperti:
$ ls ./[^t]*
Ini akan cocok dengan apa pun yang tidak dimulai dengan surat itu t
. Jika Anda menambahkan lebih banyak karakter di antara tanda kurung, maka Anda mengecualikan file yang dimulai dengan huruf-huruf itu juga.
Mencari tautan, dan saya punya yang bagus! Lihat Pencocokan Pola . Dari sana, ini akan berfungsi untuk kasus Anda:
$ ls -lrt ./!(temp_log.*)
Ini mengharuskan extglob
opsi shell diaktifkan menggunakan shopt
builtin ( shopt -s extglob
), seperti yang dinyatakan oleh Gilles .
ls --hide='temp_log.$$'
seharusnya bekerja. Anda juga bisa / harus memperpanjang ini dengan wildcard, tergantung bagian mana dari keseluruhan istilahtemp_log.$$
ini.