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

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

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]

答案1

默认情况下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.

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

相关内容