使用“touch”命令创建新文件与硬链接到文件之间的区别

使用“touch”命令创建新文件与硬链接到文件之间的区别

使用 touch 命令创建新文件和为文件创建新的硬链接有什么区别?请详细解释一下。

答案1

touch(仅使用名称作为参数)仅创建一个新的(空)文件。该文件与任何其他文件无关,它是独立的。

创建新硬链接(使用ln删除一个目录条目(不使用-s开关)将为同一“文件”创建第二个目录条目。这意味着您现在有两个目录条目(每个代表一个名称),它们访问相同的内容:如果您将内容附加到其中一个目录条目,则该更改将在另一个目录中显示。删除一个目录条目将使另一个目录条目保持活动状态(因为默认情况下删除“文件”只会删除目录条目。只有当这是最后一个目录条目时,才会删除“真实”内容)。

答案2

'touch' 会创建一个新文件,而硬链接只是同一个文件的另一个名称。

使用以下命令尝试一下:

touch file1.txt
touch file2.txt
touch file3.txt
ln file3.txt file4.txt
echo "Hello world!" >> file1.txt
echo "Hello world!" >> file2.txt
echo "Hello world!" >> file3.txt
echo "Hello world!" >> file4.txt

检查内容:file1.txt 和 file2.txt 都应包含一行。file3.txt 和 file4.txt 都包含两行。

答案3

touch将创建一个全新的文件,同时 ln链接到一个现有的文件

答案4

man lnman touch。这些命令没有任何关联。

链接不会分配新的 inode,其他条目会分配。您可以使用以下方法找出文件的 inode 编号

 ls -i

(或ls -li等等)。

要查找具有给定 inode 编号的文件:

 find -inum 98398

Inode 仅在文件系统内是唯一的硬链接仅在单个文件系统内可行

相关内容