ディスクにファイルがあり、それへのハードリンクを作成すると、同じデータへの2つの参照があります。あるリンクが削除されても、そのリンクはデータを直接指すため、他のリンクには影響しません。
ABCファイルを指す2つのリンク(AとB)があり、リンクAを別のディスクに移動すると、2つのデータコピーがあります。リンクAは新しいディスクのデータを指し、リンクBは古いディスクのデータを指します。
リンクAとBを新しいディスクに移動したい場合は、新しいディスクに2つのデータコピーを残さずにこれを行う方法はありますか?
答え1
rsync
ハードリンクをコピーする機能。オプションを確認してください-H
。
-H, --hard-links preserve hard links
答え2
説明する内容は、実際にはディスク上のデータへの3つのポインタです。
- アルファベット
- ㅏ
- 第二
新しいファイルシステムを使用している場合、mv A
実際には新しいファイルシステムにデータコピーが作成されます。
新しいファイルシステムに移動すると、mv B
新しいファイルシステムに名前が付けられたデータの別のコピーが作成されます。B
ただし、ABCは元のファイルシステムに残ります。
新しいファイルシステムに元のファイルとリンクをコピーするにはどうすればよいですか? (source/とnew-file-system/を正しいパスに置き換えます):
cp source/ABC new-file-system/ABC
ln new-file-system/ABC A
ln new-file-system/ABC B
rm source/ABC source/A source/B
これにより、新しいファイルシステムにデータがコピー/作成され、新しいファイルシステムにハードリンクAとBが作成され、古いデータとハードリンクが削除されます。
データの損失を防ぐために、コマンドを完了する前にすべての構文を再確認してください。