mount --bind... コマンドを使用して、Debian のシンボリックリンクから別のシンボリックリンクを生成します。

mount --bind... コマンドを使用して、Debian のシンボリックリンクから別のシンボリックリンクを生成します。

Debian では、(mount --bind コマンドを使用して) 他のシンボリックリンクからシンボリックリンクを作成する方法について質問があります。

2つの状況があります。

最初の状況: /main/dataにコアデータがあります。 「data」フォルダ内にはいくつかのファイル(フォルダ、ファイルなど)があります。その中に別のフォルダへのシンボリックリンクを作成しました。たとえば、次のようになります。

マウント --bind /master/data/users/admin

次に、コアフォルダではなくadminフォルダに別のシンボリックリンクを作成します。たとえば、次のようになります。

マウント --bind /users/admin/public/user1

フォルダからフォルダへのシンボリックリンクを作成するので、すべてがうまく機能します。しかし、2番目のケース:

2番目のケース:最初の場合と同様に、/ mount --bindコマンドを使用して/main/dataから単一のファイルのみをマウントしたいと思います。まず、adminに移動してから、フォルダ/user/admin全体をuser1にマウントします。まず/user/adminに空のファイルを作成し、コアファイルをインストールする必要があります。シームレスな作業のためのステップ -例:

/user/admin/myNewFile.txtをタッチします。

マウント --bind /main/data/information.txt /user/admin/myNewFile.txt

しかし、最後の部分は動作しません。例:

マウント --bind /users/admin/public/user1

最後のコマンドは、フォルダを/user/adminから/public/user1にマウントします。これにより、/ user / adminのすべてのファイルとフォルダがマウントされます。 "myNewFile.txt" は /public/user1 に表示されますが、ファイルは空でサイズは 0 です。

問題は、正しくマウントするためにマウントコマンドを実行するオプションがあるか、またはこの問題を解決できる他のソリューションがあるかです。

ご提案いただきありがとうございます。

答え1

このmount --bindコマンドはバンドルのインストール、シンボリックリンクではありません。実際のシンボリックリンクは、ln -sこのコマンドを使用して生成されます。

を使用すると、mount --bind /main/data/information.txt /user/admin/myNewFile.txtあるファイルシステムの一部(特にファイル)を別のファイルシステムに接続します。今の内容がinformation.txt存在していても、myNewFile.txtまだファイルは/user/admin ファイルシステム。通常、これは重要ではありませんが、最後のコマンドの場合は重要です。

mount --bind /user/admin /public/user1バンドルインストールの実行一つファイルシステム - サブマウントポイントを含むソースファイルのすべてのサブマウントポイントはコピーされません/user/admin/myNewFile.txt

バインドマウントを使用してディレクトリツリー全体をコピーするには、既存のベースを含むあなたと同様に、/usr/admin/myNewFile.txt以下を使用する必要がありますmount --rbind

mount --rbind /user/admin /public/user1

2番目のケースは最初のケースと似ています。

mount --bind /main/data /user/admin

それから:

mount --bind /user /mnt

これにより、このディレクトリが空のディレクトリになる可能性/mnt/adminがあります。 (またはいくつかのファイルがある場合、そのファイルは確かに最新のファイルではなく、ずっと/main/data前に誰かが使用しようとしましたが、最初に完了できなかった/user/admin古いゴミであることがわかりますmount --bind /main/data /user/admin。)

通常のマウントまたはmount --bindディレクトリのマウントを実行する場合は、まずターゲットのmkdir場所に空のディレクトリを作成する必要があります。その後、mountコマンドはそのディレクトリの上に追加のコンテンツを追加します。同様に、mount --bind単一のファイルで作業するときは、最初にターゲットtouchに空のファイルを作成する必要があります。mountコマンドはいくつかのコンテンツを追加できます。その後、mount --bindファイルシステムの適切な部分を見ると、元のファイルにマウントされているファイルシステム/ファイルの代わりに、デフォルトの空のディレクトリ/ファイルが表示されます。

関連情報