lnコマンドについて: クロスデバイスの条件

lnコマンドについて: クロスデバイスの条件

の上openSUSE タンブルウィード 20210606カーネル付きGNU/Linux 5.12.9-1-デフォルト

/custからへのファイルへのハードリンクを作成しようとしました~/backup:

df /cust && df ~/backup && ln -P /cust/customization.tar ~/backup/

エラーメッセージを含む結果を取得します:

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda3      706523136 158883972 546393196  23% /
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda3      706523136 158883972 546393196  23% /home
ln: failed to create hard link '/home/luli/backup/customization.tar' => '/cust/customization.tar': Invalid cross-device link

から/dev/sda3までと記載されているのはなぜですか。また、詳細はどこで入手できますか。/dev/sda3cross-device

ありがとう。

答え1

lnオプションなしでは、ドキュメントに記載されているようにハードリンクが作成されます。マニュアルページlink特に、EXDEVエラーを説明するセクションには、次のような記述があります。

link() は、同じファイルシステムが両方のマウントポイントにマウントされている場合でも、異なるマウントポイント間では機能しません。

以下の段落は問題に対処していないことは承知していますが、回答から削除するつもりはありません。一部の読者にとってはまだ役立つかもしれません。

ハード リンクは同じファイルシステム内の inode 番号を指すため、ファイルシステム間で作成することはできません。代わりにシンボリック リンクを使用できます (-s オプション)。

関連情報