Btrfsはパス以外のファイルを識別する方法を提供しますか?私は、ファイルがあり、/my/directory/a.txt
誰かまたは何かがそのファイルに移動すると、/my/other/directory/b.txt
まだ同じファイルですが、パスが変更されたので、「b.txt」が「a」であるかどうかを知る方法がありません。 .txt". TXT".
答え1
持つアイノード番号ls -i
(、参照stat
)、多くの(すべて?)他の* nixファイルシステムと同じです。 Btrfsでは安定していますが(再起動や他のシステムにインストールしても変更されません)、サブボリューム内でのみ(フルファイルシステム1ではありません)一意で再利用できます。
同じinode番号を同時に報告する同じサブボリューム内の2つのパスは、同じファイルにつながります。ハードリンクの仕組み。しかし、一般的に言えば、今日のinode番号が次のようになっているかどうかを判断することはできません。窒素昨日のようなファイル窒素。
誰もがアクセスできないディレクトリにハードリンクを維持することが回避策になる可能性があります。ハードリンクが存在する限り、対応するinode番号は同じサブボリューム内で再利用できません。それではあなたはできます。同じ inode 番号を持つすべてのファイルのリスト要求に応じて。
場合によっては、ファイルが新しい場所にある正式に別のファイルであるため、ファイルを追跡することはできません。これには以下が含まれます。
- コピー+削除でソースが「移動」された場合(CoWコピーの有無にかかわらず)
- ソースが別のサブボリュームに移動された場合。
- 元のファイルを別のファイルシステムに移動した場合(これはコピー+削除チャーム)。
1 2 つの異なるサブボリュームは、2 つの異なるデバイス番号を意味します。でも単一のマウントポイント(マウントされた(big-...-)上位 - 下位ボリューム)からアクセスできる場合。これがBtrfsがどのように機能するかです。
答え2
たとえば、ファイルへのハードリンクを作成する必要があるとします。そして
ln -L /path/to/a.txt /unique/path/in/the/same/fs
成功すると、ファイル名が変更または削除されてもファイルにアクセスできます。
「弱い」ハードリンク(ファイルへの他のすべてのハードリンクが削除されると自動的に削除されるハードリンク)を作成する方法がわかりません。