コンテキスト
ls/cd/tree
マウントされたドッカーボリュームから永続ファイルを見つけるためにファイルシステムをナビゲートするとき、より多くのシンボリックリンクを見つけるために無限に続くディレクトリを解放することは困難であることがわかりました。検索結果が満足のいく回答を得られなかったため、間違った質問かもしれません。
質問
いくつかのプログラムやシステムがシンボリックリンクに依存しているのはなぜですか?
ここに歴史クラスがありますか?ドットファイルの起源に関するRob Pikeの物語?
ウィキペディアのページを読みました。ファイルシステムそしてシンボリックリンク、完全に説明されています。何しかし、なぜ
はい
macOSでは、次のディレクトリは完全にシンボリックリンクです。
/usr/local/bin
/usr/local/var/homebrew/linked
ベストアンサー1
多くのシステム頼る存在するシンボリックリンク本質的に基本設定処理。
プログラム名と実行する必要のあるコードとの間の関係は常にあいまいではありません(1対1の関係)。
1対多:共通プログラムのさまざまな実装がシステムに共存でき、ユーザーと履歴スクリプトは気にする必要がなく、興味がありません。
最も基本的なsh
コマンドを考えてみましょう。殻だけが多いバッシュ、csh、ksh、zsh...pffff...そして多くの関連バイナリだけがシステムに共存できます。次のいずれかの簡単な要求があるときに有効にする必要があるものは何ですかsh
?
私のシステムでは、任意の決定が簡単です。
616457 0 lrwxrwxrwx 1 root root 4 14 mai 2021 /bin/sh -> bash
もちろん、私たちはすぐにそれを考えますsh
が、一般的に使用される多くのコマンド名(awk、bzip2、bc、cpio、gzip、lex、tar、yacc...)私のシステムでは:
616450 0 lrwxrwxrwx 1 root root 15 8 juil. 2020 /bin/awk -> ../usr/bin/gawk
484973 0 lrwxrwxrwx 1 root root 10 8 juil. 2020 /usr/bin/yacc -> yacc.bison
484674 0 lrwxrwxrwx 1 root root 4 27 nov. 02:14 /usr/bin/lex -> flex
もちろん、同じプログラムの異なるバージョンが共存している場合、これはすべて似ています。実行中のカーネルのソースコードは言うまでもなく、コンパイラ、言語ソルバーを主に考慮してください。私のシステムでは:
484470 0 lrwxrwxrwx 1 root root 43 26 nov. 23:43 /usr/bin/gcc -> /usr/x86_64-pc-linux-gnu/gcc-bin/10.4.0/gcc
485883 0 lrwxrwxrwx 1 root root 19 7 déc. 01:41 /usr/src/linux -> linux-5.4.225-0707a
多対一:別のニーズ頼る/sys
シンボリックリンクは、情報を検索するときに複数のパスを介して簡単にアクセスできる一意の擬似ファイルに情報を含む非常に特定のファイルシステムに適しています。