ハードリンクを別のディスクに移動する方法

ハードリンクを別のディスクに移動する方法

ディスクにファイルがあり、それへのハードリンクを作成すると、同じデータへの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/を正しいパスに置き換えます):

  1. cp source/ABC new-file-system/ABC
  2. ln new-file-system/ABC A
  3. ln new-file-system/ABC B
  4. rm source/ABC source/A source/B

これにより、新しいファイルシステムにデータがコピー/作成され、新しいファイルシステムにハードリンクAとBが作成され、古いデータとハードリンクが削除されます。

データの損失を防ぐために、コマンドを完了する前にすべての構文を再確認してください。

関連情報