执行此操作时:
cp file1 file2
(file2
已存在)
幕后真的发生了什么?
1)file1
的内容是否真的被复制到file2
?
2)或者是使用名称file2
(覆盖旧名称)创建的新文件,其内容与file1
相同?
答案 0 :(得分:0)
您可能会注意到您是在创建交接点还是符号/硬链接。
这样想:
硬链接是一个指针/名称,指向数据;即它只是一个替代文件名;它与创建它的文件具有相同的inode编号。
明显复制,复制数据;指向从中复制文件的不同方向;有不同的inode数。
系统调用也有区别,但这有点深入探讨问题
答案 1 :(得分:0)
1)由于您使用的是“cp”,我认为操作系统是Linux。
2)在Linux上,“inodes”引用“文件”。这是两个示例文件:
$ ls -li 1 2
245728 -rw-r--r-- 1 paulsm users 8 Aug 14 14:52 1
245729 -rw-r--r-- 1 paulsm users 8 Aug 14 14:52 2
$ cat 1
Hello 1
$ cat 2
Hello 2
3)这是“cp”之后的结果
$ cp 1 2
$ ls -li 1 2
245728 -rw-r--r-- 1 paulsm users 8 Aug 14 14:52 1
245729 -rw-r--r-- 1 paulsm users 8 Aug 14 14:55 2
$ cat 2
Hello 1
你看:
a)“1”的内容完全取代“2”
b)没有“新文件” - “2”的inode在复制之前保持不变
c)文件 date 与文件内容一起更改
'希望有所帮助.. PSM