Linux:命令ls-la显示一个指向另一个文件的文件.这是什么意思



当我键入ls -la列出所有文件时,我看到的是:

11 Jul  9 12:04 libcrypto.so -> libcrypto.so.0

我试图更改libcrypto:的名称

mv libcryto.so libpmcrypto.so

现在它显示:

11 Jul  9 12:04 libpmcrypto.so -> libcrypto.so.0

这会影响什么吗?箭头是什么意思?

有问题的文件是一个符号链接。这在概念上类似于快捷方式的概念,但如果你使用它(打开、复制等),它似乎是真实的文件。符号链接是"指向"真实文件的另一个名称。执行ls -l时,它还会显示链接指向的文件。重命名链接对原始文件没有影响,但可能会破坏依赖链接名称的内容,就像其他任何文件名一样。删除链接只会删除指针,对原始文件没有任何影响。删除原始文件将使链接处于"断开状态",链接指向任何内容。

编辑 你无法真正编辑符号链接指向的内容。你可以用rm删除它们,然后用ln -s命令重新创建它们。查看手册页了解更多信息。

->表示libpmcrypto.so是一个符号链接,存储在libcrypto.seo.0中的信息可以通过libpmcrupto.so文件访问。

如何创建符号链接:

ln -s [TARGET DIRECTORY OR FILE] ./[SHORTCUT]

例如:

ln -s /usr/local/apache/logs /home/el/logs

如果删除软链接本身(/home/el/logs),文件(/usr/local/apache/logs)仍然存在。

如何查找符号链接:

find ./ -type l

有关链接的更多信息,请阅读man ln

ls -la将显示使用符号链接指向模块的文件

例如,在库目录中,您有指向.so文件(共享对象)的文件。

这意味着它不需要重新编译。你没有简单的方法来判断文件是如何链接的。

是的,这确实会改变一些东西,事实上你不应该改变共享库,因为当第三方程序试图调用libcryto时,它就不会再存在了。

但如果你确定你想更改名称,我建议你在超级用户模式下调用鹦鹉螺:

sudo nautilus /THE/FOLDER/WHERE/YOUR/FILE/IS

并通过在符号链接名称的末尾添加.0手动编辑它。你正在更改它的部分名称,所以每当程序试图调用它时,它都无法找到它。

相关内容

最新更新