Ls

ls -F 顯示的符號是什麼意思?

  • July 20, 2021

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

我猜這@意味著符號連結,

這些其他指標是什麼意思(*/=>@|)?

ls -F將符號附加到文件名。這些符號顯示有關文件的有用資訊。

如果您希望此行為成為預設行為,請將其添加到您的 shell 配置中alias ls='ls -F'

只是為了添加我如何找到此資訊。如底部所示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#General-output-formatting

引用自:https://unix.stackexchange.com/questions/82357