共享对象末尾的@符号是什么意思?
What does @ symbol at the end of a shared object mean?
我正在使用 Ubuntu,当我在 /usr/lib/ 下列出库时,我看到其中一些库的末尾有数字 and/or @ 符号。例如 libgc.so.1@ 或 libgettextlib.so@
有谁知道这是什么意思吗?
ls
命令会根据 ls
的版本和您为其提供的选项,尝试为您提供一些有关其所列名称性质的提示。
例如,有时会添加尾随 /
以表示该对象是一个目录。尾随 @
表示它是一个符号 link。 ls -l
将显示引用的文件。
什么是符号 link ?符号link是一个文件,其内容不是您可以随意使用的数据,而是另一个文件的名称。因此,当您尝试操作符号 link 时,系统会操作它所引用的文件。这是一个间接的。还有 links 稍微更完整,对你来说更像是一个别名。
以下是实验方法
$ touch foo
$ ln -s foo bar
$ ls -l foo bar
lrwxr-xr-x 1 yunes wheel 3 16 jan 10:45 bar -> foo
-rw-r--r-- 1 yunes wheel 0 16 jan 10:45 foo
这意味着 foo
是一个文件(实际上是空的),而 bar
不是一个普通文件而是一个 name 指向 foo
。现在:
$ echo "hello" >> foo
$ cat foo
hello
$ cat bar
hello
$
这是为了向您展示使用 foo
或 bar
几乎是一样的...
我正在使用 Ubuntu,当我在 /usr/lib/ 下列出库时,我看到其中一些库的末尾有数字 and/or @ 符号。例如 libgc.so.1@ 或 libgettextlib.so@ 有谁知道这是什么意思吗?
ls
命令会根据 ls
的版本和您为其提供的选项,尝试为您提供一些有关其所列名称性质的提示。
例如,有时会添加尾随 /
以表示该对象是一个目录。尾随 @
表示它是一个符号 link。 ls -l
将显示引用的文件。
什么是符号 link ?符号link是一个文件,其内容不是您可以随意使用的数据,而是另一个文件的名称。因此,当您尝试操作符号 link 时,系统会操作它所引用的文件。这是一个间接的。还有 links 稍微更完整,对你来说更像是一个别名。
以下是实验方法
$ touch foo
$ ln -s foo bar
$ ls -l foo bar
lrwxr-xr-x 1 yunes wheel 3 16 jan 10:45 bar -> foo
-rw-r--r-- 1 yunes wheel 0 16 jan 10:45 foo
这意味着 foo
是一个文件(实际上是空的),而 bar
不是一个普通文件而是一个 name 指向 foo
。现在:
$ echo "hello" >> foo
$ cat foo
hello
$ cat bar
hello
$
这是为了向您展示使用 foo
或 bar
几乎是一样的...