Linux中通过ln 命令出啊关键硬链接和符号链接,一般步骤华纳云总结如下!
硬链接能直接指向文件物理位置,即文件系统中的同一个inode,这表示原始文件被删除,硬链接还是能访问文件数据。创建硬链接,需要先打开终端再使用ln 命令来创建硬链接:
ln [原始文件] [硬链接名]
如有一个file.txt文件,想创建一个名为link_hard.txt 的硬链接,命令为:
ln file.txt link_hard.txt
需要注意是硬链接不允许跨文件系统创建,还有不能为目录创建硬链接。
符号链接类似windows中的快捷方式,含一个指向原始文件或目录的路径。创建符号链接要先创建一个原始文件或目录的路径,打开终端,使用ln 命令并加上 -s 选项来创建符号链接:
ln -s [原始文件] [符号链接名]
如file.txt文件,想创建一个名为 link_sym.txt 的符号链接:
ln -s file.txt link_sym.txt
符号链接支持跨文件系统创建,也可以为目录创建符号链接。如:
# 创建硬链接
ln /path/to/original/file.txt /path/to/hard/link.txt
# 创建符号链接
ln -s /path/to/original/file.txt /path/to/sym/link.txt
如果想检查一个文件中是否有硬链接或符号链接,在linux中可以使用不通过方法来实现,如使用ls -l 命令,可以显示出文件详细信息,包含链接数量。如果有硬链接,也会显示在文件权限的后面,如:
ls -l filename
输出例子:
-rw-r--r-- 2 user group 100 Nov 18 12:34 filename
其中,2 表示有两个硬链接指向这个文件(一个是文件本身,另一个是硬链接)。如果这个数字大于1,那么这个文件至少有一个硬链接。
对于符号链接,ls -l 会显示符号链接指向的目标,并用 l 开头:
ls -l symlink
输出示例:
lrwxrwxrwx 1 user group 10 Nov 18 12:34 symlink -> /path/to/target
l 表示这是一个符号链接,-> 后面跟着的是它指向的目标文件的路径。
stat 命令可以提供文件的详细状态信息,包括链接的数量:
stat filename
输出中,你会看到 Links: 这一行,显示的是硬链接的数量。
如果你想要查找系统中所有有硬链接的文件,你可以使用 find 命令:
find /path/to/search -type f -links +1
这个命令会查找指定路径下所有硬链接数量大于1的文件。
lsof 命令可以用来查看打开的文件,包括符号链接:
lsof | grep filename
这个命令会列出所有打开的文件,包括符号链接。