シンボリック リンク
シンボリックリンクを理解するのに苦労しています。私は基本的な前提を理解していると信じています。それは本質的にエイリアスです。
ただし、現在の作業ディレクトリをシンボリックリンクの作成に使用させていると仮定すると、それがどのように機能するかは、作業ディレクトリに依存しますか?
私が使用している現在のコマンドはln -s
シナリオ例
私は GitHub にいくつかのプロジェクトを持っています。そのうちのいくつかは、~/bin に保存する、私が書いた単純な小さなスクリプトです。~/bin は、これらのスクリプトの呼び出しに簡単にアクセスできるように、私の $PATH 環境変数にあります。
$echo $PATH
/Users/me/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
/usr/local/git/bin
git のインストールで、$PATH に追加されているように見えることに気付きました。とりあえず、なかったことにしようと思います。
例:(hist
最近使用したコマンドの統計を表示する簡単なスクリプトです)
#/bin/bash
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
$hist
1 115 23% l
2 58 11.6% cd
3 44 8.8% ls
4 29 5.8% git
5 14 2.8% sudo
6 13 2.6% locate
7 12 2.4% open
8 11 2.2% wc
9 10 2% dt
10 9 1.8% rm
このアクションを実行すると:
$cd ~/bin
$pwd
$/Users/me/bin
$ln -s hist ~/Desktop/hist
$ls -la ~/Desktop/
$ls -la | grep hist
lrwxr-xr-x 1 me staff 4 Sep 15 21:15 hist -> hist
$cd ~/Deskop
$hist
コマンド ワードですが、気になるのはそのリストhist -> hist
です。実際のソースがどこにあるかについての情報はありません。ファイルを別の場所に移動できるかどうかはわかりませんが、引き続き機能します。
そのため、最近はシンボリック リンクを作成するときに拡張トークンを使用しないようにしています。~
no moreなどの意味。
.bash_profile
GitHub を使い始め、 、.bashrc
、およびのリポジトリを作成していたので、これを開始する必要さえありました.bash_history
。に変更を加え、ローカル リポジトリから に変更して.bash_profile
から実行するたびに、大変な作業になりました。cp
~/bin
source ~/bin/.bash_profile
質問
でこれを行うための適切な手順は何ですかln -s
、それとも純粋に好みの問題であり、最終結果は常に同じように機能します。
良いニュースは、-F フラグについて学習したln
ことです。これにより、宛先であるファイル名をヒットしてもエラーが発生しなくなりました。-F フラグはln
それを上書きするように指示するのでmv
、ファイルを 'ing してからln -s
コマンドを実行する時間を節約できます。
参照
これは私の ~/bin が現在どのように見えるかを示しています。シンプルにするために多くを削除しています:
$l
total 56
lrwxr-xr-x 1 me staff 53 Sep 15 20:40 hist -> /Users/me/Documents/me/git-projects/hist/hist
lrwxr-xr-x 1 me staff 57 Sep 15 20:41 lcaser -> /Users/me/Documents/me/git-projects/lcaser/lcaser
lrwxr-xr-x 1 me staff 70 Sep 10 05:12 mate -> /Applications/TextMate 1.x.app/Contents/SharedSupport/Support/bin/mate
lrwxr-xr-x 1 me staff 56 Sep 15 20:42 tart -> /Users/me/Documents/me/git-projects/tart/tart.sh
lrwxr-xr-x 1 me staff 69 Sep 15 20:44 watchinstall -> /Users/me/Documents/me/git-projects/watchInstall/watchInstall