ls
bunu yapma seçeneği yoktur, ancak unix & linux ile ilgili güzel şeylerden biri, uzun soluklu ve inelegant boru hatlarının kolayca bir kabuk betiği, işlevi veya diğer adı haline getirilebilmesidir. ve bunlar, sırayla, diğer programlardaki gibi boru hatlarında da kullanılabilir.
(NOT: Fonksiyonlar ve takma isimlerle ilgili bazı kapsam sorunları vardır. Komut dosyaları, bunları okuyabilen ve çalıştırabilen herhangi bir çalıştırılabilir dosya için kullanılabilir. Takma adlar ve işlevler yalnızca geçerli kabukta kullanılabilir - bir alt kabuğun .profile / .bashrc vb. onları ve böylece onları kullanılabilir hale getirir.Ayrıca, herhangi bir dilde - bash / sh, awk, perl, python ve diğerleri dahil olmak üzere herhangi bir dilde yazılabilir - hangisi iş için en iyisi veya hangisine aşina olursanız olun)
Örneğin
alias lsf='find . -maxdepth 1 -type f -print0 | xargs -0r ls'
Tüm geleneksel ls
seçenekleri kullanabilmeniz için xargs ekledim.lsf -lrS
O kullandığından find
, normalde gizli dotfiles tüm görüntülenir ve dosya adları tüm ./ öneki getirilecek - o göreceğiniz tek fark hakkında.
Nokta dosyalarını hariç tutabilirsiniz, ! -iname '.*'
ancak sonra takma adın iki sürümüne sahip olmanız gerekir;
alias lsf2='find . -maxdepth 1 -type f -a ! -iname '\''.*'\'' -print0 | xargs -0r ls'
Alternatif olarak, lsf
bir takma ad yerine bir komut dosyası olsaydı , seçenekleri (belki getopts ya da / usr / bin / getopt ya da benzerleriyle) ayrıştırabilir ve -a
mevcut olmadıkça nokta dosyalarını hariç tutabilirsiniz .
find
komut ne istersen yapmanın en iyi yoludur. Bazı güvenilir diğer seçenekler için, kabuğa özgü komutları incelemelisiniz (ve bunlar taşınabilir olan herhangi bir şeydir)!