ハードリンクにcp -lを使用することとlnを使用することに違いはありますか?

ハードリンクにcp -lを使用することとlnを使用することに違いはありますか?

私はrsyncとハードリンクを使ってバックアップシナリオを実装しています。私はrsyncでlink-destを使用してハードリンクを実行できることを知っていますが、rsyncで "link-dest"を実装する前に "cp -l"を使用することに注意してください。私が知っているもう一つのハードリンク方法は「ln」です。

だから私の質問は好奇心からのものです。 「ln」を使用する場合と比較してハードリンクを生成するために「cp -l」を使用することに違いはありますか?

ベストアンサー1

元のファイルへのハードリンクが作成されるため、両方の結果は同じでなければなりません。

違いは、目的と各コマンドで使用できるオプションにあります。たとえば、cp再帰を使用できますが、ln次は使用できません。

cp -lr <src> <target>

<target>のすべてのファイルへのハードリンクを作成します<src>。 (リンクではなく新しいディレクトリを作成します。)結果として、下のディレクトリツリー構造は<target>下のディレクトリツリー構造と同じように見えます<src>cp -r <src> <target>後者を使用すると、すべてのファイルとフォルダをコピーしてそれぞれに新しいファイルを提供しますが、前者inodeはファイルのハードリンクのみを使用するため、ファイルの数だけが増加するという点で異なりますLinks

あなたの例のように単一のファイルをコピーするために使用される場合、結果は同じです。

おすすめ記事