web-dev-qa-db-ja.com

同じファイルシステムでのハードリンク中の無効なクロスデバイスリンク

/ home/myuser/Desktop/rc/.netrc/ rootへのハードリンクが必要なファイルがあります。つまり、rootユーザーのホームディレクトリです。私がする時:

ln /home/user/Destkop/rc/.netrc /root

次のエラーが発生します。

ln:ハードリンクの作成/root/.netrc' =>。netrc ':無効なクロスデバイスリンク

しかし、ファイルをmyuserのホーム、つまり/ home/myuserにハードリンクすると機能します。

では、何が問題なのか、ここにファイルシステムが1つしかない場合に無効なクロスデバイスと表示されるのはなぜですか?

PS。使用していますRHEL6

14
Elvin Aslanov

/homeディレクトリが/rootディレクトリと同じパーティション上にない可能性があります。

これはcat /etc/fstabで簡単に確認できます。異なるパーティション間ではハードリンクを作成できません。シンボリックリンクのみ作成できます。

9
fduff

私には、HARDリンクを使用するのではなく、シンボリックリンクを使用するのが最善の方法であるように見えます。あなたはそれが面倒のはるかに少ないことがわかり、物事はうまく機能します。あなたがそれらに気づいていない場合、ハードリンクにはいくつかの興味深い問題があります。

man lnを見て、-sオプションをチェックアウトしてください!

一般に、HARDリンクの代わりにシンボリックリンクを使用してください。

5
mdpc

おそらく、以前は、シンボリックリンクされたフォルダーは、ソース上の実際の宛先フォルダーに置き換えられていました。そして今、あなたのバックアップスクリプトは失敗します。

0