GNU/Linux >> Linux の 問題 >  >> Linux

Linuxの絶対パスと相対パス:違いは何ですか?

パスはLinuxで最も重要な概念の1つであり、これはすべてのLinuxユーザーが知っておく必要のあることです。

パスは、ファイルとディレクトリを参照する方法です。 Linuxディレクトリ構造内のファイルまたはディレクトリの場所を示します。名前とスラッシュの構文で構成されています。

/home/abhishek/scripts

ユーザーとして、特定のファイルまたはディレクトリにアクセスする場合、またはファイルまたはディレクトリの場所をコマンドまたはスクリプトに指定する必要がある場合は、パスを使用する必要があります。

cat /home/abhishek/scripts/my_script.sh

パスがスラッシュ「/」で始まる場合、最初のスラッシュはルートを示します。パス内の残りのスラッシュは単なる区切り文字です。初心者は、ルートスラッシュとセパレータスラッシュの間で混乱することがよくあります。

上の図では、ルートスラッシュで始まる最初のパスがあります。 /で始まらない別のパス(つまり、ルート)があります。

どちらも正しいです。最初のパスは絶対パスで、2番目のパスは相対パスです。それらを詳しく見てみましょう。

Linuxの絶対パスと相対パス

絶対パスは常にルートディレクトリ(/)から始まります。たとえば、/home/abhishek/scripts/my_scripts.sh。

相対パスは現在のディレクトリから始まります。たとえば、/ homeディレクトリにいて、my_scripts.shにアクセスしたい場合 ファイルの場合、 abhishek / scripts / my_scripts.shを使用できます 。

絶対パスと相対パスの違いを理解する

Linuxのディレクトリ構造は、ツリーのルートに似ていることをご存知でしょう。すべてはルートから始まり、そこから分岐します。

ここで、ディレクトリabhishekにいると想像してください。 my_scripts.shにアクセスしたい ファイル。

絶対パスは緑色の点線で示され、相対パスは黄色の点線で示されます。

ファイルmy_script.shのプロパティを確認したいとします。 lsコマンドを使用します。

ルートディレクトリ(/)で始まる絶対パスを使用できます:

ls -l /home/abhishek/scripts/my_script.sh

または、相対パス(/ではなく現在のディレクトリから開始)を使用できます:

ls -l scripts/my_script.sh

どちらのコマンドでも同じ結果が得られます(ファイルのパスを除く)。

Linuxでは、ファイル名は大文字と小文字が区別され、大文字、小文字、数字、ピリオド、ダッシュ、アンダースコア、およびスラッシュ(/)を除くほとんどの記号。スラッシュ(/)は、ルートおよびパス内のディレクトリを区切るために予約されています。 で相対パスを使用します。および..ディレクトリ

絶対パスと相対パスの違いを説明する別の例を示します。ただし、その前に、2つの特別な相対パスについて知っておく必要があります。

  • 。 (単一のドット)は、パス内の現在のディレクトリを示します。
  • ..(2つのドット)は、親ディレクトリ、つまり1つ上のレベルを示します。

物事はすぐに明らかになります。シナリオを見てください。これでは、ディレクトリprakashに移動します ディレクトリabhishekから 。

cdコマンドを使用してディレクトリを切り替えることができます。絶対的な道はここで非常に明白です:

cd /home/prakash

相対パスを使用するには、特別な相対パスを使用する必要があります:

cd ../prakash

なぜ..を使用するのですか?相対パスには現在のディレクトリからの方向が必要であり、cdコマンドにレベルを上げるように指示してからレベルを下げる必要があるためです。 .. /homeに移動します ディレクトリに移動し、そこからprakashに移動します ディレクトリ。

物事がもっと明確になったことを願っています。

絶対パスは常にルート(/)で始まり、現在の場所に関係なく同じままです。相対パスは、現在の場所によって異なります。

どちらを使用する必要がありますか?相対パスまたは絶対パス?

正直なところ、この質問に対する直接的な答えはありません。状況によって異なります。

ディレクトリ階層の奥深くにいて、レベルを上下に移動する必要がある場合は、相対パスを使用する方が簡単です。

/ home / username / programming / project / interface / src / headerディレクトリにいて、/ home / username / programming / project / interface/binディレクトリにあるものにアクセスする必要があるとします。相対パスを使用すると、これらの長いディレクトリ名をすべて入力する手間が省け、ここで../../binを使用できます。

ただし、。 ./usr/binは賢明なことではありません。この場合、絶対パスを使用するのが賢明です。

もう1つのケースは、スクリプトまたはプログラムでパスを使用することです。場所がわかったら、絶対パスを使用します。プロジェクトに複数のフォルダがあり、ディレクトリを切り替える必要がある場合は、エンドユーザーがホームディレクトリまたは一部の開発ディレクトリにあるすべてのプロジェクトファイルをコピーする場所ではないため、ここで相対パスを使用できます。

つまり、両方の方法を理解し、シナリオに基づいてより簡単になる方法を使用する必要があります。

Linuxでのパスとナビゲーションについて理解を深めていただければ幸いです。質問や提案があれば、コメントを残してください。


Linux
  1. Linuxコンテナとイメージの違いは何ですか?

  2. 現在のディレクトリからの相対パスを使用して、Linux CLI でファイルを再帰的に一覧表示する

  3. Linux での「検索」と「検索」の違いは何ですか?

  1. Linux の Active Directory に相当するものは何ですか

  2. Unix、Linux、BSD、GNU の違いは何ですか?

  3. Linux の ./ はどういう意味 (ドット スラッシュ) ですか?

  1. LinuxとUnix:違いは何ですか?

  2. Linuxのlocateコマンドとfindコマンドの違いは何ですか

  3. Linux の絶対パスと相対パスの違い