Sanırım kabuğun bir özelliğini kullanmak istiyorsunuz, değil ls
. Ben bash kullanıyorum, bu yüzden ne istediğini kontrol ettim man bash
. "^ GENLEŞME" araması yapın (önce '/' tuşuna basarak). Alıntı:
GENİŞLEME
Genişletme, komut satırında sözcüklere ayrıldıktan sonra gerçekleştirilir. Gerçekleştirilen yedi tür genişletme vardır: küme ayracı genişletme , tilde genişletme , parametre ve değişken genişletme , komut ikamesi , aritmetik genişletme , sözcük bölme ve yol adı genişletme .
︙
... <
ekran alıntısı > ... ︙
Yol Adı Genişletme
Sürece kelimesi yarma sonra, -f seçeneği ayarlandığında, bash karakterleri için her kelimeyi tarar *
, ?
ve [
. Bu karakterlerden biri belirirse, kelime bir desen olarak kabul edilir ve onun yerine desenle eşleşen alfabetik olarak sıralanmış dosya adlarının bir listesi gelir. ...
Geçenlerde ilk harfine göre dosyaları hariç tutmaya başladım, şöyle bir komutla:
$ ls ./[^t]*
Bu, harfle başlamayan herhangi bir şeyle eşleşir t
. Köşeli ayraçlar arasına daha fazla karakter eklerseniz, bu harflerle başlayan dosyaları da hariç tutarsınız.
Bir bağlantı mı arıyorsunuz? Bkz. Örüntü Eşleme . Oradan, bu sizin durumunuz için işe yarar:
$ ls -lrt ./!(temp_log.*)
Bunun için, extglob
kabuk seçeneğinin Gilles tarafından belirtildiği gibi shopt
builtin ( shopt -s extglob
) kullanılarak etkinleştirilmesi gerekir .
ls --hide='temp_log.$$'
çalışmalı. Bunu, tüm terimin hangi kısmına bağlı olarak joker karakterlerle genişletebilir / genişletmelisiniztemp_log.$$
.