私たちは解決しなければならない問題がたくさんあります絶対パス、時にはファイル用、時にはコマンド用です。まさに何なのかという重要な知識ベースの質問が欲しい。絶対パス するファイルだけでなくコマンドにも関連しているからです。
どういう意味ですか?絶対パスコマンドの実装とこれはUnixとLinuxの動作にどのような影響を与えますか?
- どのように絶対パスアクションは次のように異なります相対パス?
- 〜これ絶対パス環境
$PATH
設定を上書きしますか? - コマンドの置き換えで他に何が起こりますか?
$(/bin/echo Hello world)
- は絶対パスより良いスクリプト?
- なぜ時々たくさんありますか?絶対パス注文のために?
/usr/bin/echo
/bin/echo
- どちらも同じシステムで動作します。
- ディストリビューション全体でより一貫性がありますか、それともPOSIXが優先されますか?
cd
コマンドがないかのようにいくつかのコマンドを実行するのはなぜですか?絶対パス?- なぜかどうかそれともしなければならない私たちは絶対パススクリプトで?
- 絶対パスはいスクリプト関連
- シェルインタプリタが気になりますか?絶対パス、
bash
対zsh
?
明確さ
答え1
- 絶対パスは相対パスとどのように動作しますか?
- 絶対パスは環境$ PATH設定を上書きしますか?
- コマンドを置き換えると何が起こりますか? $(/bin/echo Hello world)
絶対パスと相対パスの両方が扱われます$PATH
。重要なのは、aが/
存在するかどうかです。/some/command
または の場合、./some/command
そのsome/command
位置(絶対または相対)のコマンドが から検索されるのではなく実行されます$PATH
。スラッシュがないとsome-command
検索されます$PATH
。コマンド置換はこれには影響しません。
- 時々、コマンドに絶対パスが多いのはなぜですか?
システムによって異なります。存在するUsrMergeを使用したLinuxシステム(ページにFedoraが記載されていますが、これには最新のUbuntu、Debian、Arch Linuxなどが含まれます。)/bin
はい/usr/bin
、そうです/bin/echo
。と/usr/bin/echo
同じです。 Solarisでは、XPGセクションでより多くの標準互換ユーティリティを使用できます。XPG*バージョンのコマンドはいつ使用する必要がありますか?他のシステムには異なる原因がある可能性があります。
- たとえば、いくつかのコマンドに
cd
絶対パスがないのはなぜですか?
時々彼らは:「cd」外部コマンドの意味は何ですか?、時にはそうでない場合があります。CDはなぜプログラムではないのですか?
すべての「すべきこと」と「しないでください」は、あなたが何をしたいのかによって異なります。時には人々が絶対パスを使用しているのを見ます。これは、ユーザーがインストールした可能性のあるツールの代替バージョンから自分自身を保護すると考えているからです。時々私はこれがソフトウェアを別のシステムに移植したい人に問題を引き起こしているのを見ました。なぜなら、これらの絶対パスのツールは意図されたツールではありませんが、ユーザーがインストールした代替バージョンが正しく機能するためです。