現在構築している大規模ライブラリへのパスを増やすために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 -P
pwd
cd
-L
とフラグもあります-P
(-L
デフォルト)。
答え2
あなたは試すことができます製本使用できると仮定してインストールします。Sudoまたは、root権限が必要です。例えば、
mkdir /home/me/opencv/build
mkdir -p /media/me/pendrive/opencv/build
sudo mount -o bind /home/me/opencv/build /media/me/pendrive/opencv/build
その後、入力すると内容が/home/me/opencv/build
表示されます。インストールをキャンセルするために使用されます。..
/home/me/opencv/
sudo umount /home/me/opencv/build