シンボリックリンクの作成の仕方と、リンク先へcdで移動する際に直接本体へ行く方法
前回作成したこのディレクトリを利用します
$ ls -loR 1st_dir 1st_dir: total 4 drwxrwxr-x 3 roma 4096 Jul 24 09:23 2nd_dir ・ ・ ・ 1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir: total 0
mkdirで存在しない途中のディレクトリも一緒に作成する方法 - 脳汁portal
シンボリックリンクの作成方法
コマンド
ln -s ${実際に存在するディレクトリ} ${今から作成するリンク}
- sオプションはsymbolicのsです。(-s, --symbolic make symbolic links instead of hard links)
例
$ ln -s 1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir/ target_dir $ ls -l $ ll total 24 drwxrwxr-x 3 root root 4096 Jul 24 09:23 1st_dir lrwxrwxrwx 1 root root 40 Jul 24 09:31 target_dir -> 1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir/
削除するときも、普通にtarget_dirの方を消そうとすれば、「symbolic linkを消すかい?」って聞いてくれるので安心です。
$ rm -i target_dir rm: remove symbolic link `target_dir'? $ rm -i target_dir/ # これだとダメ rm: cannot remove `target_dir/': Is a directory
シンボリックリンク先の本体へ移動する場合
日本語が不自由な感じになっていますが、上記の作ったシンボリックリンクに普通に移動すると以下のようになります。
$ cd target_dir/ $ pwd /home/root/target_dir # "1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir"じゃない # 4th_dirにあがりたくても、 $ cd ../ $ pwd /home/root # あがれない・・・
こういうときは-Pオプションをつけて移動してあげればシンボリックリンクとしてではなく、直接参照先に飛べます
$ cd -P target_dir/ $ pwd /home/roma/1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir # シンボリックリンクじゃない! $ cd ../ $ pwd /home/roma/1st_dir/2nd_dir/3rd_dir/4th_dir # 当然一階層あがれば4th_dir!!
単純なことですが、Tipsとして。。