例えば、
実行可能ファイルemacs
:
lrwxrwxrwx 1 root root 23 Jun 9 2012 /usr/bin/emacs -> /etc/alternatives/emacs
llrwxrwxrwx 1 root root 18 Jun 9 2012 /etc/alternatives/emacs -> /usr/bin/emacs23-x
lrwxrwxrwx 1 root root 9 May 16 2013 /usr/bin/emacs23 -> emacs23-x
-rwxr-xr-x 1 root root 6772008 May 16 2013 /usr/bin/emacs23-x
実行可能ファイルemacsclient
:
lrwxrwxrwx 1 root root 29 Jun 9 2012 /usr/bin/emacsclient -> /etc/alternatives/emacsclient
lrwxrwxrwx 1 root root 28 Jun 9 2012 /etc/alternatives/emacsclient -> /usr/bin/emacsclient.emacs23
-rwxr-xr-x 1 root root 18256 May 16 2013 /usr/bin/emacsclient.emacs23
システムディレクトリにリンクへのリンクがあるのはなぜですか?
何らかの理由でリンクする必要がある場合、例では2つのファイルを直接リンクするのではなく、ファイル入力からファイル入力にリンクし、ファイル入力に戻すの
/usr/bin
はなぜですか?/etc/alternatives/
/usr/bin
/usr/bin
リンクされていないファイルに到達するまでリンクを遅らせるコマンドはありますか?
Ubuntu
ベストアンサー1
- システムディレクトリにリンクへのリンクがあるのはなぜですか?
これは、使用する基本プログラムまたはプログラムのバージョンを選択するための柔軟な方法を提供します。からman update-alternative
:
Debian の代替システムは、この問題を解決することを目指しています。ファイルシステムの共通名は、交換可能な機能を提供するすべてのファイルで共有されます。代替システムとシステム管理者は、共通名が参照する実際のファイルが何であるかを共同で決定します。たとえば、テキストエディタed(1)とnvi(1)の両方がシステムにインストールされている場合、代替システムでは、一般名/usr/bin/editorが/usr/bin/nviにデフォルト値に設定されます。システム管理者はこの設定を無視して/usr/bin/edを参照するようにすることができ、代替システムは明示的に要求しない限りこの設定を変更しません。
2. リンクされていないファイルに到達するまでリンクを遅延させるコマンドはありますか?
実用性がある場合は、readlink
次のことができます。
readlink -f link
例:
$ readlink -f /usr/bin/nawk
/usr/bin/gawk
abs_path
または、コアモジュールでPerl機能を使用することもできますCwd
。
$ perl -MCwd=abs_path -le 'print abs_path(shift)' /usr/bin/nawk
/usr/bin/gawk
ノート