文件名上的@ 符号是什么意思

Dyl*_*lan 6 ls

当我ls/proc/PID目录中执行操作时,文件名旁边会显示一些@ 符号。通常我会认为这意味着扩展属性,但是当我执行长格式时,ls它们不会出现在我期望的位置,并且输出看起来与平时不同。我试过谷歌搜索,但只找到了扩展属性描述。到底是怎么回事?

root@hashcat:/proc/29286/ns# l
ipc@  mnt@  net@  pid@  user@  uts@
root@hashcat:/proc/29286/ns#
root@hashcat:/proc/29286/ns# ls -l
total 0
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 ipc -> ipc:[4026531839]
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 mnt -> mnt:[4026531840]
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 net -> net:[4026531956]
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 pid -> pid:[4026531836]
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 user -> user:[4026531837]
lrwxrwxrwx 1 dylan dylan 0 Mar 21 21:09 uts -> uts:[4026531838]
Run Code Online (Sandbox Code Playgroud)

mic*_*has 8

默认情况下ls不打印这些分类器。很可能您使用的别名是指ls -F. (您可以使用type lstype l来检查。)

-F选项记录在info ls

‘-F’
‘--classify’
‘--indicator-style=classify’
     Append a character to each file name indicating the file type.
     Also, for regular files that are executable, append ‘*’.  The file
     type indicators are ‘/’ for directories, ‘@’ for symbolic links,
     ‘|’ for FIFOs, ‘=’ for sockets, ‘>’ for doors, and nothing for
     regular files.  Do not follow symbolic links listed on the command
     line unless the ‘--dereference-command-line’ (‘-H’),
     ‘--dereference’ (‘-L’), or
     ‘--dereference-command-line-symlink-to-dir’ options are specified.
Run Code Online (Sandbox Code Playgroud)

因此带有 a 的条目@是符号链接。实际上,符号链接仅存储任意字符串,通常是另一个文件的名称,但在您的情况下,内核仅插入包含内部 ID 的描述。