Что означают символы, отображаемые ls -F?


62

Я заметил, что если я запускаю ls -F в каталоге, некоторые записи имеют после них * или @.

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

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файл для дальнейшего использования.

Ответы:


68

ls -Fдобавляет символы к именам файлов. Эти символы показывают полезную информацию о файлах.

Если вы хотите , чтобы это поведение будет использоваться по умолчанию, добавьте в конфигурации оболочки: alias ls='ls -F'.


10
не реализуйте команды, это может нарушить плохо написанные сценарии. У меня есть псевдоним lдля -F и цвета, а llтакже для -l
ctrl-alt-delor

На Android я получаю полностью две колонки. Я получаю имя файла или имя каталога и ПЕРЕД именем есть минус, если это файл, или «d», если это каталог, или «ld», если это ссылка. Это бедствие, что Linux так противоречивы!
Эльмуэ

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.