在本文中,您将学习如何使用硬链接和符号链接(也称为软链接)使多个文件名引用同一文件,在Linux系统中,创建指向同一文件的多个名称的两种常见方法是:创建到文件的硬链接和创建到文件的软链接(符号链接)。
使用硬链接 Linux中的每个文件都以单个硬链接开头,通过创建指向文件的新硬链接,您可以创建另一个指向相同数据的名称。 新的硬链接的行为与原始文件名完全相同,很难说出新的硬链接和文件的原始名称之间的区别,您可以使用ln命令来创建硬链接,另一个指向现有文件的名称: $ echo "Hello World from Hard Link" >/tmp/hello1.txt $ ln /tmp/hello1.txt /tmp/hello2.txt 参考:ln命令_Linux ln命令使用详解:用来为文件创件连接。 注:/tmp/hello1.txt是现有文件的路径,/tmp/hello2.txt是您要创建的硬链接。 使用ls -i选项可列出文件的inode编号,如果索引节点号相同,则文件是指向相同数据的硬链接: $ ls -li /tmp/hello1.txt /tmp/hello2.txt 2591191 -rw-------. 2 jkmutai jkmutai 27 Feb 5 08:16 /tmp/hello1.txt 2591191 -rw-------. 2 jkmutai jkmutai 27 Feb 5 08:16 /tmp/hello2.txt --- Let's add third file and recheck --- $ ln /tmp/hello1.txt /tmp/hello3.txt $ ls -li /tmp/hello1.txt /tmp/hello2.txt /tmp/hello3.txt 2591191 -rw-------. 3 jkmutai jkmutai 27 Feb 5 08:16 /tmp/hello1.txt 2591191 -rw-------. 3 jkmutai jkmutai 27 Feb 5 08:16 /tmp/hello2.txt 2591191 -rw-------. 3 jkmutai jkmutai 27 Feb 5 08:16 /tmp/hello3.txt 引用同一文件的所有硬链接都具有相同的内容:链接数、访问权限、用户和组的所有权、时标、文件内容。 与软链接比较: $ ls -li /tmp/file1.txt /tmp/file2.txt /tmp/file3.txt 2442008 -rw-------. 1 jkmutai jkmutai 17 Feb 4 22:37 /tmp/file1.txt 2442949 lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb 4 22:38 /tmp/file2.txt -> /tmp/file1.txt 2601927 lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb 5 08:24 /tmp/file3.txt -> /tmp/file1.txt
使用软链接(符号链接) 软链接是一种特殊类型的文件,它指向现有文件或目录,它可用于链接不同文件系统上的两个文件,软链接也可以指向特殊文件。 ln -s命令用于创建软链接,让我们看一个例子。 在以下示例中,ln -s命令用于为现有文件/tmp/file1.txt创建一个新的软链接,该文件将命名为/tmp/file2.txt: $ echo "Hello from file1" > /tmp/file1.txt $ ln -s /tmp/file1.txt /tmp/file2.txt 通过列出文件进行确认: $ ls -l /tmp/file1.txt /tmp/file2.txt -rw-------. 1 jkmutai jkmutai 17 Feb 4 22:37 /tmp/file1.txt lrwxrwxrwx. 1 jkmutai jkmutai 14 Feb 4 22:38 /tmp/file2.txt -> /tmp/file1.txt 您可以看到/tmp/file2.txt的长列表的第一个字符是l而不是-,这表明该文件是软链接,而不是常规文件。(A d表示该文件是目录。) 检查符号链接文件的内容: $ cat /tmp/file2.txt Hello from file1 对于目录,请使用: ln -s /dir /dir2 如果删除原始常规文件,则该软链接仍将指向丢失的文件,即“dangling soft link”。
硬链接和软链接之间的主要区别 1、硬链接将名称指向存储设备上的数据。 2、软链接将一个名称指向另一个名称,该名称指向存储设备上的数据。
相关主题 |