ファイル名の@記号はどういう意味ですか? [重複]

ファイル名の@記号はどういう意味ですか? [重複]

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 lsまたはを使用して確認できますtype 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を含む説明のみを挿入します。

関連情報