1

これを行う場合:

cp file1 file2

(file2既に存在します)

舞台裏で実際に何が起こっているのですか?

1) のコンテンツはfile1実際に にコピーされfile2ますか?

file22)または、同じ内容の名前(古いファイルを上書き)で作成された新しいファイルfile1ですか?

4

2 に答える 2

0

通常は最初です。インデックス エントリとファイルのデータの両方が書き込まれます。
それでも、あなたがどの(ファイル)システムにいるのかを知ることは役に立ちます(Linuxフレーバーを推測します)。

ジャンクション ポイントまたはシンボリック/ハード LINK を作成している場合は、おそらく気付くでしょう。

次のように考えてください。
ハードリンクは、データを指すポインター/名前です。つまり、単なる代替ファイル名です。作成元のファイルと同じ inode 番号を持っています。

明らかにコピー、データのコピー。コピー元のファイルとは別の方向を指します。i ノード番号が異なります。

システムコールにも違いがありますが、それは問題をやや深く掘り下げたものです

于 2012-08-14T21:50:09.730 に答える
0

1)「cp」を使っているので、OSはLinuxだと思います。

2) Linux では、「ファイル」は「inode」によって参照されます。以下に 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: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)ファイルの日付がファイルの内容とともに変更されます

'それが役立つことを願っています.. PSM

于 2012-08-14T21:54:41.780 に答える