2015-01-15 88 views
1

我使用的是Ubuntu,当我列出/ usr/lib /下的库时,我发现它们中的一些在末尾有数字和/或@符号。例如libgc.so.1 @或libgettextlib.so @ 有谁知道这意味着什么?共享对象末尾的@符号是什么意思?

+1

这意味着,这些符号链接(如果你使用'ls -l命令libgc.so.1',你会看到它指向一个不同的名字)。 “@”实际上并不在文件名的末尾;只有在给定'-F'选项时才会显示'ls',一些操作系统默认配置一个别名来启用。 – 2015-01-15 17:12:03

+1

由于这是一个比编程问题更多的使用问题,顺便说一句,更好的论坛是http://superuser.com/。 – 2015-01-15 17:14:14

+0

我该如何携带它? – lulijeta 2015-01-16 09:28:39

回答

1

ls命令试图给你一些关于它列出的名称的性质的提示,具体取决于ls的版本和你给它的选项。

例如,尾随/有时被添加到意味着该对象是一个目录。尾随@意味着它是一个符号链接。 ls -l将向您显示引用的文件。

什么是符号链接?符号链接是一个文件,其内容不是您可以随意使用的数据,而是另一个文件的名称。因此,当您尝试操作符号链接时,系统会操作它引用的文件。这是间接的。还有一些链接稍微更加整合,对你来说更像一个别名。

这里是如何尝试

$ 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不是一个普通的文件,但一个指向foo。现在:

$ echo "hello" >> foo 
$ cat foo 
hello 
$ cat bar 
hello 
$ 

此向您展示使用foobar几乎是一样的...

+0

您也可以运行'ls -F'来显示添加的sigil,同时用'ls'显示具有各种参数的输出。 – 2015-01-16 17:33:41