Linuxシンボリックリンクパスの問題

Linuxシンボリックリンクパスの問題

現在構築している大規模ライブラリへのパスを増やすためにUSB PENDRIVEを使用しようとしています。

だから私のプログラムでPendriveのフォルダへのシンボリックリンクを作成するアイデアができました。これにより、メインストレージの代わりにペンドライブのスペースを使用できます。

/home/me/opencv/ <--私がビルドしたい製品です。 /home/me/opencv/build/ <-- ビルドフォルダです。

この時点では、これを構築するためのメモリが不足し、次にこのシンボリックリンクを作成しました。/home/me/opencv/

mkdir /media/me/pendrive/opencv/build/

ln -s /media/me/pendrive/opencv/build/  /home/me/opencv/ -s

/home/me/opencv/これにより、私のペンドライブを指すフォルダの下に「ビルド」リンクが作成されました。

ここでの問題は、ディレクトリナビゲーションがペンドライブも指していることです。

cd /home/me/opencv
ls

これはopencvフォルダ内の多くのフォルダとファイルをレンダリングします。

しかし、私はこれを行うと...

cd /home/me/opencv/build
ls ..

これにより、buildという名前のフォルダが1つしかない空のopencvフォルダがレンダリングされます。

ベストアンサー1

違いがあるロジックそして物理発生したディレクトリパス。

cd /home/me/opencv/build

これは論理ディレクトリに入りますが、シンボリックリンクのおかげで/home/me/opencv/build実際には論理ディレクトリになります。/media/me/pendrive/opencv/build

ls ..あなたに何を見せるのか物理親ディレクトリ/media/me/pendrive/opencv

物理ディレクトリパスは、すべてのシンボリックリンクが検証された論理ディレクトリパスです。論理ディレクトリパスにシンボリックリンク以上が含まれている場合は同じです。

また、pwd -Lビルドディレクトリとwhileの違いを確認してください(そしてマニュアルも読んでください)。pwd -Ppwd

cd-Lとフラグもあります-P-Lデフォルト)。

おすすめ記事