findのxdevオプション名の後に隠された歴史は何ですか?

findのxdevオプション名の後に隠された歴史は何ですか?

xdevオプションの名前は直感的ではないと思います。私にとって、これは「クロスデバイス(検索)」の略です。ただし、これは正反対に検索を単一のファイルシステムに制限します。代わりですが、やや古い名前は覚えやすい「マウント」です。このオプションの名前の後に隠された歴史は何ですか?

ベストアンサー1

実際には、クロスデバイスを意味する可能性が高いです。するいいえ複数の端末で

内部に1985年のBSDの最初の実装、コードは次のとおりです

int    Xdev = 1;       /* true if SHOULD cross devices (file systems) */
[...]
   else if (EQ(a, "-xdev")) {
           Xdev = 0;

Xdevデバイスが交差する必要があるかどうかを追跡する内部変数はどこにありますか?述語は-xdevこれをゼロに設定します。

数年後、AT&TのDavid KornはSVR4に同様の述語を追加し、-mountエイリアスを与えました(FTW_MOUNT新しい木製ウォーキングライブラリの特徴を反映して)。

-mountこのオプションはあまり良いとは思わない。を表すと仮定シングルインストールこれはLinuxでも誤解を招くかもしれませんが、少なくともLinuxでは、ファイルシステムに対して複数のマウントポイントを設定できます。

$ mkdir -p a/b b
$ sudo mount --bind a b

今、b同じマウントポイントです。装備そして.a

$ find . -xdev
.
./b
./b/b
./a
./a/b
$ find . -mount
.
./b
./b/b
./a
./a/b

find複数の端末では動作しませんが、b異なります。ポイントだから-mount(シングルインストールとして)もっと誤解を招くことがあります-xdev防止クロスデバイス)。

おすすめ記事