シンボリックリンクという言葉はこれまで幾度か聞いたことがありますが、
これがどういう場面で使われるのか未だに理解ができません。
辞書的な意味をはじめ、ネットで概要については調べました。
その中での私の認識では、
「すでにあるファイルに別名をつけて、 その名前で参照できるようにするモノ」
だと思っております。
そこで以下質問です。
1)ファイルのバックアップみたいな用途で使うのかなと思ったのですが、
そういう使い方をされるのでしょうか?
2)また、もしそうであるとしても、「.org」等して、バックアップファイルを生成することと
使い勝手の違いがよくわかりません。
(参照できるところが便利なんだろうなとは漠然と思いますが、まだよさがわかりません)
3)その他、どういう場面で使われるのか、皆様の実例を教えて下さい。
事例を多く知りたいため、複数回答だと尚有難いです。
以上お手数ですが、ご協力の程宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答13件
0
いろいろなケースがあると思います。
1.1つの物に別名を付けたい
viと言うエディタには、ex view rvi rview といった別名があり、どの名前で呼び出されたかによって動作が異なります。
2.差し替え可能なものを常に同じ名前で呼びたい
メールサーバーソフト(SMTPソフト)には、sendmail postfix qmailなど複数あって、どれか一つを使います。どれを使う場合でも、/bin/mail や /usr/lib/sendmail といった名前で使うことが出来ます。
何らかの理由で別のSMTPソフトに切り替えた場合でも、使う側は修正不要です。
あるいは、バージョン番号を含んだファイルを、バージョン無しの名前で利用して、バージョンが変わったらリンク先を変えるなど。
3.同じ物を複数のディレクトリに置きたい
カレントディレクトリにある物は、コマンドラインからの指定が楽です。よく使うディレクトリやファイルへのシンボリックリンクを、作業用のディレクトリに置いておくと楽。
Windowsのデスクトップに、いろいろな物のショートカットを置くのもこれと同じですね。
まだ他にもあると思いますが、これくらいで。
投稿2015/05/07 14:35
総合スコア86295
0
実行命令を実行するプログラムがあるとします。
/foo/bar/program
実際のモジュールはバージョン名付で次に格納されています。
/foo/bar/pg/program-v1
/foo/bar/pg/program-v2
/foo/bar/pg/program-v3
シンボリックリンクをこうします。
/foo/bar/program -> /foo/bar/pg/program-v3
リリースはファイルを配置してシンボリックリンクを変えればOK!
みたいな感じでもつかえますよ。
投稿2015/05/07 14:46
総合スコア67
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
■ショートカットとしての利用
~/access.log --> /var/log/apache/access.log
みたいに深い階層にあるファイルへのショートカットとして使ってみたり。
■複数バージョンの共存のため
例えば、
・/opt/local/hoge_1.0.0
・/opt/local/hoge_1.5.0
・/opt/local/hoge_2.0.0
という同じアプリケーションの複数のバージョンがインストールされている場合、
/opt/local/hoge --> /opt/local/hoge_2.0.0
としておけば、過去のバージョンを残しつつ、最新バージョンを利用することが可能、といった使い方をします。
投稿2015/05/24 04:32

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ログだけ別のパーティションに置きたいときとかに使うことがあります。
たとえばインストーラが /usr/local/product01/ みたいなディレクトリ配下に
bin, log, .. を作ったとして、log ディレクトリだけ別のとこに変えたい
というようなケースです。
投稿2015/05/09 15:56

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
まっとうな用法ではありませんが、「シンボリックリンク攻撃」というような攻撃手法も存在します。
悪意のあるユーザーが、/etc/passwd
のような重要なファイルを指すシンボリックリンクを仕掛けておいて、ターゲットとなるプログラムが普通のファイルを開くつもりでそのシンボリックリンクを開いてしまい、悪意のあるユーザーの権限ではなくプログラム自体の権限で当該のファイルにアクセスできてしまう、というような手法です。
他の回答にもありますように、もちろんシンボリックリンクは有用な機能ですが、裏返しでこんな危険性があることを知っておいても、損はないでしょう。
投稿2015/05/08 01:21
総合スコア146544
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
他の方が上げた利用例とは異なった部分で利用していたので回答します.
他の方の回答と同じような利用ケースももちろんありますが,
私は,dotfilesを全部シンボリックリンクにしています.
(dotfilesは,bashやzsh, vim, tmux などの設定ファイルを指しています)
設定ファイルをgithubなどのリポジトリで管理し,任意の場所にcloneして
シェルスクリプトを実行すればすべてホームディレクトリに設置されるようにしてます.
シンボリックリンクにしているのは,pullしたときに勝手に反映されると楽だからです.
投稿2016/03/23 16:02

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Windowsでいうところのショートカットと
同じ使い方と思ってほぼok
言葉は知ってるけど使ったことが無い
もっというとunixを使ったことがないので
イメージがわかないってことなのかなあ。
実際に ln コマンドで作ってみるといいと思う。
興味がわいたならファイルシステムについて
調べてみるといいかもしれません。
投稿2016/03/23 12:38
総合スコア7468
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
うーん・・・シンボリックリンクをサボリックリンクと読んでみたり。
よく使う場面としては、
・インストーラ(パッケージインストーラも含む)が自動的にシステム用ショートカットとして作成してくれる
・ディレクトリ階層が深くオリジナルのハック(便利)ツールを引っ張ってくるとき
・ruby,pythonなど開発用の環境をバージョンごとに用意しなくてはならないとき
・データベースのバックアップデータを外部媒体に保持してあり、特定ディレトリ経由でマウントする必要があるとき
やはり必要だから生まれた んでしょうね。
投稿2016/03/21 05:29
総合スコア446
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Windowsでの例ですが、直近で実際にしたのは、
C:\WINDOWS\SoftwareDistribution\Download
を、
D:\Download
にしました。Cドライブの空きがなくなり、WindowsUpdateのダウンロードファイルをDドライブを使用するようにしました。
TEMPや仮想メモリファイルや、Temporary Internet Filesなど、環境変数やレジストリ等で場所を変えれる物はできるのですが、場所を指定する設定が存在しないとか、%SystemRoot%からの相対パスの場所などを変更するのに有用です。
Linux/Unixでも、/home/hoge/Log を /tmp/Log にしたりと領域またがりは可能だと思います。
あと、一般的な使い方としては、Tomcat上のJavaのWEBアプリだとして、
WEB-INF/src/config.properties という設定ファイルを /WEB-INF/classes/config.properties
にリンクする(ソースファイル側の設定ファイルと、実行側オブジェクトの設定ファイルを同一にする)などです。
EclipseでBuildすると、上記例はコピーしてくれますが、BATやshellで自分でコンパイルするなどの場合は同一目的の設定ファイルの乱立を防ぐことができるかと。
投稿2016/03/18 15:13
総合スコア79
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
どなたも触れられていないので…
太古の昔、if test -e /hoge then...と記述していたものを、if [ -e /hoge ] thenと記述できるようになりました。が、この仕組み(ハードリンク)は同じiノードを別の名前でアクセスできるようにしたため、パーティションをまたぐことができませんでした。
そこで賢者が考えたのがシンボリックリンクです。名前に対して、実態のパスを記述する。
最近見かけるに、/etc/httpdをServerRootに設定し、/etc/httpd/logs->/var/log/httpd(正確ではない)の様な設定をしたディストリビューションがあります。
このように、ディレクトリ参照もあれば、1つのプログラムがプログラムの名前で、動きを変えるケース、前にも書いた[がtestといった、別の名前を取るケース。
様々です。
投稿2015/05/29 10:15
総合スコア33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
実態のファイルは長くて面倒な場所+名前であるけどそれを忘れてしまいそうなんでよく分かるところに別名でとっておきたい時です。viとかCUIで開くとき便利です。
投稿2015/05/20 12:49
総合スコア217
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。