技術共有

Linux の基本: 3. 相対パスと絶対パス

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

3. 相対パスと絶対パス

  • 厳密に言えば、ファイル名はディレクトリ + ファイル名で構成されます。

Windowsシステム

  • 絶対パス

    • 絶対パスはドライブ文字から始まります。次に例を示します。C:UsersUsernameDocumentsfile.txt
    • Windows では、パスの区切り文字はバックスラッシュです
    • 絶対パスは、現在の作業ディレクトリがどこにあるかに関係なく、ファイルまたはディレクトリの場所を正確に特定します。
  • 相対パス

    • 相対パスは、現在の作業ディレクトリからのドライブ文字部分を除いた相対パスです。
    • Windowsでは、. 現在のディレクトリを表します。.. 親ディレクトリを表します。
    • 例: 現在の作業ディレクトリが C:UsersUsername、しかし Documentsfile.txt に相当C:UsersUsernameDocumentsfile.txt
    • 例: 現在の作業ディレクトリが C:UsersUsername、しかし .Documentsfile.txt に相当C:UsersUsernameDocumentsfile.txt

Linuxシステム

  • 絶対パス

    • 絶対パスはルート (/) から計算され、いつでも曖昧ではありません。次に例を示します。/usr/include/stdio.h
    • Linux では、パスの区切り文字はスラッシュです。 /
    • 絶対パスは常にルート ディレクトリから始まり、そのパスによってファイルまたはディレクトリの場所が一意に決まります。
  • 相対パス

    • 相対パスは、ルート ディレクトリ部分を除いた、現在の作業ディレクトリからの相対パスです。
    • Linuxでは、. 現在のディレクトリを表します。.. 親ディレクトリを表します。
    • 例: 現在の作業ディレクトリが /usr、しかし include/stdio.h に相当/usr/include/stdio.h

2つを比較してください

  • パス区切り文字

    • Windows はバックスラッシュを使用します , Linuxではスラッシュを使用します。 /
  • パス解決

    • Windows はパスを処理するときに大文字と小文字を区別しませんが、パス区切り文字は異なります。
    • Linux のパスでは、大文字と小文字が厳密に区別されます。
  • 使用習慣

    • プログラマーがコードを記述するとき、ファイルやディレクトリの正確性と移植性を確保するために絶対パスを使用することがよくあります。
    • 相対パスは、現在の作業ディレクトリを基準としたパス参照のコマンド ライン操作または単純なスクリプトでよく使用されます。

相対パスのパス区切り文字 - または ./

  • 「./user/test.sh」は「user/test.sh」と同等です。

  • 通常、パスに . を追加してもしなくても、特に最新のオペレーティング システムやコマンド ライン環境では効果がありません。それの訳は:

  • デフォルトの現在のディレクトリ: 相対パスを指定すると、システムはデフォルトで現在の作業ディレクトリ内でファイルまたはディレクトリを検索します。したがって、ほとんどの場合、Documentsfile.txt と .Documentsfile.txt は同じファイルの場所を指します。

  • 現在のディレクトリを表示: 現在のディレクトリを明確に表現するため、または混乱を避けるために複雑なコマンドで明示的に使用されることがあります。そうすることで、コードの読みやすさとコマンドの明瞭さが向上します。

  • クロスプラットフォームの適応性: クロスプラットフォームの開発またはスクリプトでは、明示的に使用することで、さまざまなオペレーティング システムでパス区切り文字が正しく解釈されるようになります。たとえば、Windows では、Unix または Linux で / を使用します。

  • 全体的に、 . を使用するかどうかは、個人またはチームの好みとコーディング規約によって異なります。ほとんどの場合、システムは相対パスを自動的に処理します。したがって、 . は必須ではありませんが、パスの開始点を明確にするのに役立ちます。