ls -F 显示的符号是什么意思?

ls -F 显示的符号是什么意思?

我注意到,如果我在目录上运行 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
...

我猜这@意味着符号链接,

这些其他指标意味着什么(*/=>@|)?

答案1

ls -F将符号附加到文件名。这些符号显示有关文件的有用信息。

如果您希望此行为成为默认行为,请将其添加到您的 shell 配置中:alias ls='ls -F'

答案2

只是添加我如何找到此信息。如底部所示man ls

完整文档位于:https://www.gnu.org/software/coreutils/ls 或通过以下方式在本地获取:info '(coreutils) ls incalling'

接下来,我们看到

'-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#General-output-formatting

相关内容