Co oznaczają symbole wyświetlane przez ls-F?


61

Zauważyłem, że jeśli uruchomię ls -F w katalogu, niektóre wpisy mają po nich * lub @.

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/  

Według stron podręcznika ls

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

Zgaduję, że @to oznacza symboliczny link,

Co oznaczają te inne wskaźniki ( */=>@|)?


2
Czy myślałeś o obejrzeniu strony podręcznika?
mdpc

23
On ma. W rzeczywistości opublikował fragment strony podręcznika. Pełna lsdokumentacja, w tym informacje o wyświetlanych symbolach ls -F, znajduje się w podręczniku Texinfo. ( info ls).

1
Na marginesie, ponieważ TeXinfo podręczniki generalnie czuję dziwny i obcy, to często, aby utrzymać wokół funkcje, takie jak: infos () { info --vi-keys --subnodes -o - "$@" | less; }.

1
@EvanTeitelman To świetna informacja, o której będę info foo --vi-keyspamiętać. Niestety składnia wspomniałeś nie działa dla mnie (informacje o () {Informacje --vi-klucze ...}
spuder

1
@spuder: To funkcja; musisz to nazwać. infos ls. $@Część przechodzi wszystkich argumentów funkcja do info. Możesz umieścić tę funkcję w swoim ~/.bashrcpliku do późniejszego wykorzystania.

Odpowiedzi:


67

ls -Fdołącza symbole do nazw plików. Te symbole pokazują przydatne informacje o plikach.

Jeśli chcesz to zachowanie jako domyślny, dodać to do konfiguracji powłoki: alias ls='ls -F'.


10
nie wykonuj poleceń, może to uszkodzić źle napisane skrypty. Mam alias, laby mieć -F i kolor, a lltakże mieć -l
ctrl-alt-delor

Na Androidzie otrzymuję całkowicie dwukolumnowe wyjście. Dostaję nazwę pliku lub nazwę katalogu i ZANIM nazwa zawiera minus, jeśli jest to plik, lub „d”, jeśli jest to katalog, lub „ld”, jeśli jest to łącze. To katastrofa, że ​​Linuxes są tak niespójne!
Elmue

1

Aby dodać, jak znalazłem te informacje. Jak wskazano na dole man ls:

Pełna dokumentacja: https://www.gnu.org/software/coreutils/ls lub dostępna lokalnie poprzez: info „(coreutils) ls invocation”

Po tym widzimy

„-F” „--classify” „--indicator-style = klasyfikuj” Dołącz znak do każdej nazwy pliku wskazujący typ pliku. Ponadto w przypadku zwykłych plików, które można wykonać, dodaj „*”. Wskaźniki typu pliku to „/” dla katalogów, „@” dla dowiązań symbolicznych, „|” dla FIFO, „=” dla gniazd, „>” dla drzwi i nic dla zwykłych plików. Nie należy podążać za dowiązaniami symbolicznymi wymienionymi w wierszu poleceń, chyba że podano opcje --dereference-command-line (-H), --dereference (-L) lub --dereference-command-line-symlink-to-dir.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.