Linux中的符号链接是什么,为什么使用它?
符号链接(也称为符号链接或软链接)是一种特殊类型的文件,它只是指向另一个文件或目录,就像Windows中的快捷方式一样,创建符号链接就像为实际文件创建别名一样。
如果尝试访问符号链接,则实际上是访问符号链接指向的目标文件。对链接文件内容执行的更改将更改实际目标文件的内容。lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:51 link_prog -> newdir/test_dir/prog.py
在大多数Linux发行版中,链接以不同于其他条目的颜色显示,因此你可以区分链接和常规文件和目录。
软链接以不同的颜色显示
符号链接提供了一种方便的方法来组织和共享文件,它们在链接Linux中的库中大量使用。
如何在Linux中创建符号链接ln -s target_file link_name
-s选项在这里很重要,它决定链接是软链接,如果您不使用它,它将创建一个硬链接。
关于符号链接的注意事项
符号链接有时令人困惑,因此你应该注意一些事情。
对链接所做的更改将反映在原始文件中
这就是链接的全部目的,通过访问链接访问目标文件,可以通过链接更改目标文件,看一看示例。
我在newdir/test_dir中有一个文件prog.py。它有以下属性:-rw-r--r-- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py
现在,我在当前目录中创建一个到这个文件的软链接:ln -s newdir/test_dir/prog.py link_prog
以下是新创建的链接的属性:lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:51 link_prog -> newdir/test_dir/prog.py
注意行首的l(不是L)吗?如果您熟悉Linux中的文件权限,您会知道'l '表示链接,因此它告诉您该文件实际上是链接。
现在,如果我使用这个链接来更改内容或属性,同样的内容将反映在目标文件中,例如,我在软链接上使用touch命令,您会注意到它会更改目标文件的时间戳。touch link_prog
ls -l newdir/test_dir/prog.py
-rw-r--r-- 1 abhishek abhishek 163 Jul 2 10:04 newdir/test_dir/prog.py
可以创建指向不存在文件或目录的链接
是的,完全可能,要链接的目标文件不需要存在,创建指向不存在的文件/目录的链接时不会收到错误或警告。
仅当您尝试通过链接或单独访问目标文件时,才会出现错误。ls命令仍然有效。ln -s non_existant_dir link_dir
less link_dir
link_dir: No such file or directory
符号链接是用777权限创建的,但它不意味着什么
符号链接总是使用777权限(rwxrwxrwx )创建,对于常规文件,这意味着人都可以访问该文件,但这不是链接的情况。lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:51 link_prog -> newdir/test_dir/prog.py
如果按原样对待链接上的文件权限,则任何用户都可以创建指向安全文件的符号链接并自由访问它。因为目标文件的权限很重要,而不是链接的权限。
您可以使用chmod命令更改链接的权限,但是它将更改链接文件的权限,而不是链接本身的权限。