Ls -F ile gösterilen semboller ne anlama geliyor?


61

Bir dizinde ls-F komutunu çalıştırırsam, girdilerin bazılarında bunlardan sonra bir * veya @ işareti olduğunu fark ettim.

spuder@ubuntu:~$ ls -F /sbin
acpi_available*   getpcaps*           lvmconf*                 ntfscp*        start-stop-daemon*
agetty*           getty*              lvmdiskscan@             ntfslabel*     status@
alsa*             halt@               lvmdump*                 ntfsresize*    stop@
alsactl*          hdparm*             lvmsadc@    

spuder@ubuntu:~$ ls -F ~
daq-0.6.1/  examples.desktop       noname-cache.lib  snort-2.9.1/   Templates/
Desktop/    jpgraph-1.27.1/        noname.sch        snortfiles/    Ubuntu One/
Documents/  

Ls man sayfalarına göre

spuder@ubuntu:~$ man ls
...
-F, --classify
  append indicator (one of */=>@|) to entries
...

Bunun @sembolik bağlantı anlamına geldiğini tahmin ediyorum.

Bu diğer göstergeler ne anlama geliyor ( */=>@|)?


2
Erkek sayfasına bakmayı düşündün mü?
mdpc

23
O sahip. Aslında, manpage'den bir alıntı yaptı. Gösterilen lssembollerle ilgili bilgiler de dahil olmak üzere tam dokümantasyon, ls -FTexinfo kılavuzundadır. ( info ls).

1
Texinfo kılavuzları genellikle yabancı ve tuhaf hissediyorum çünkü bir yan not, bu gibi işlevleri etrafında tutmak için yaygındır: infos () { info --vi-keys --subnodes -o - "$@" | less; }.

1
@EvanTeitelman Bu harika bir bilgi, info foo --vi-keysaklımda tutacağım . Ne yazık ki bahsettiğiniz sözdizimi benim için işe yaramıyor (infos () {info --vi-keys ...}
spuder

1
@ spuder: Bu bir işlevdir; aramak zorundasın. infos ls. $@Bölüm için işlevin argümanlar tüm geçer info. Bu işlevi ~/.bashrcdaha sonra kullanmak üzere dosyanıza koyabilirsiniz .

Yanıtlar:


67

ls -Fdosya adlarına semboller ekler. Bu semboller dosyalar hakkında faydalı bilgiler gösterir.

Bu davranış, varsayılan olmasını istiyorsanız, sizin kabuk yapılandırması için bu ekleyin: alias ls='ls -F'.


10
komutları realias etmeyin, kötü yazılmış komut dosyalarını kırabilir. Ben başka ad olan l-F ve renk elde etmek ve llaynı zamanda -l olması
ctrl-alt-Delor

Android'de tamamen iki sütun çıktısı alıyorum. Dosya adını veya dizin adını alıyorum ve isimden ÖNCE dosya varsa eksi, bir dizin ise "d" veya bir link ise "ld" olur. Linux'ların bu kadar tutarsız olması bir felaket!
Elmue

1

Sadece bu bilgiyi nasıl bulduğumu eklemek için. Altında belirtildiği gibi man ls:

Tam dokümantasyon: https://www.gnu.org/software/coreutils/ls veya yerel olarak mevcut: info '(coreutils) ls çağrısı'

Bundan sonra görüyoruz

'-F' '--classify' '--indicator-style = classify' Her dosya adına, dosya türünü gösteren bir karakter ekleyin. Ayrıca, çalıştırılabilir normal dosyalar için '*' ekleyin. Dosya tipi göstergeleri dizinler için '/', sembolik bağlantılar için '@', '|' FIFO'lar için, '=' soketler için, '>' kapılar için ve normal dosyalar için hiçbir şey. --Dereference-komut satırı (-H), --dereference (-L) veya --dereference-komut satırı - sembolik bağlantı seçenekleri belirtilmedikçe komut satırında listelenen sembolik bağlantıları izlemeyin.

üzerinde https://www.gnu.org/software/coreutils/manual/coreutils.html#ls-invocation

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.