Що означають символи, відображені ls -F?


61

Я помітив, що якщо я запускаю ls -F у каталозі, деякі записи мають після себе * або a @.

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

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

Я здогадуюсь, що це @означає символічне посилання,

Що означають ці інші показники ( */=>@|)?


2
Ви думали переглянути сторінку чоловіка?
mdpc

23
Він має. Насправді він опублікував уривок із сторінки. Повна lsдокументація, включаючи інформацію про символи, що відображаються ls -F, міститься в посібнику Texinfo. ( info ls).

1
На стороні записки, так як Texinfo керівництво в цілому відчуває себе дивно і закордонним, це загальне , щоб тримати навколо функції , як ці: infos () { info --vi-keys --subnodes -o - "$@" | less; }.

1
@EvanTeitelman Це чудова інформація, я буду мати info foo --vi-keysна увазі. На жаль, синтаксис, який ви згадали, не працює для мене (infos () {info --vi-keys ...}
spuder

1
@spuder: це функція; ви повинні це назвати. infos ls. $@Частина проходить всі аргументи функції в info. Ви можете помістити цю функцію у свій ~/.bashrcфайл для подальшого використання.

Відповіді:


67

ls -Fдодає символи до імен файлів. Ці символи показують корисну інформацію про файли.

Якщо ви хочете , щоб це поведінка буде використовуватися за замовчуванням, додайте в конфігурації оболонки: alias ls='ls -F'.


10
не реалізовуйте команди, це може зламати погано написані сценарії. Я маю псевдонім lмати -F та color, а llтакож мати -l
ctrl-alt-delor

На Android я отримую повністю два стовпчикові вихідні дані. Я отримую ім’я файлу або ім'я каталогу, і перед назвою є мінус, якщо це файл, або "d", якщо це каталог, або "ld", якщо це посилання. Лихо, що Linuxes такі непослідовні!
Елмуе

1

Просто додати, як я знайшов цю інформацію. Як зазначено внизу man ls:

Повна документація за адресою: https://www.gnu.org/software/coreutils/ls або доступна локально через: info '(coreutils) ls invocation'

Слідом за цим ми бачимо

'-F' '--classify' '--indicator-style = classify' Додайте символ до кожного імені файлу із зазначенням типу файлу. Також до звичайних файлів, які виконуються, додайте "*". Індикаторами типу файлу є "/" для каталогів, "@" для символічних посилань, "|" для FIFO, '=' для розеток, '>' для дверей, і нічого для звичайних файлів. Не слідкуйте за символічними посиланнями, вказаними в командному рядку, якщо не вказані параметри --dereference-command-line (-H), --dereference (-L) або --dereference-command-line-symlink-to-dir.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.