これを行う場合:
cp file1 file2
(file2
既に存在します)
舞台裏で実際に何が起こっているのですか?
1) のコンテンツはfile1
実際に にコピーされfile2
ますか?
file2
2)または、同じ内容の名前(古いファイルを上書き)で作成された新しいファイルfile1
ですか?
通常は最初です。インデックス エントリとファイルのデータの両方が書き込まれます。
それでも、あなたがどの(ファイル)システムにいるのかを知ることは役に立ちます(Linuxフレーバーを推測します)。
ジャンクション ポイントまたはシンボリック/ハード LINK を作成している場合は、おそらく気付くでしょう。
次のように考えてください。
ハードリンクは、データを指すポインター/名前です。つまり、単なる代替ファイル名です。作成元のファイルと同じ inode 番号を持っています。
明らかにコピー、データのコピー。コピー元のファイルとは別の方向を指します。i ノード番号が異なります。
システムコールにも違いがありますが、それは問題をやや深く掘り下げたものです
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