复制文件的内容

时间:2012-08-14 21:47:42

标签: file copy

执行此操作时:

cp file1 file2

file2已存在)

幕后真的发生了什么?

1)file1的内容是否真的被复制到file2

2)或者是使用名称file2(覆盖旧名称)创建的新文件,其内容与file1相同?

2 个答案:

答案 0 :(得分:0)

通常是第一个。索引条目和文件的数据都被写入 然而,了解你是什么(文件)系统(猜测linux风格)会有所帮助。

您可能会注意到您是在创建交接点还是符号/硬链接。

这样想:
硬链接是一个指针/名称,指向数据;即它只是一个替代文件名;它与创建它的文件具有相同的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