Bash で絶対パスを取得する

Abid Ullah 2023年6月20日
  1. Bash で絶対パスを取得する方法
  2. Linux のファイルのルート ディレクトリ
  3. readlink コマンドを使用して Linux で絶対パスを取得する
  4. realpath コマンドを使用して Linux で絶対パスを取得する
  5. find コマンドを使用して Linux で絶対パスを取得する
Bash で絶対パスを取得する

この Bash の記事では、Linux で絶対パスを取得するさまざまな方法を学習します。 また、ファイルの絶対パスを取得するためのいくつかの異なる Linux コマンドについても学習します。

始める前に、Linux オペレーティング システムにおける 絶対 パスと 相対 パスの基本的な概念を理解する必要があります。

Bash で絶対パスを取得する方法

オペレーティング システムの構成要素は、ファイルとフォルダーです。 Linux ユーザーとして、いくつかのファイルおよびディレクトリ アクションを操作します。

ファイルのパス全体を見つけることは、そのようなプロセスの 1つです。 ファイルの完全なパスは、絶対パスまたは正規パスとも呼ばれます。

ファイルやフォルダを探すためのアドレスをパスと呼びます。 絶対パスは、任意の場所から目的のファイルを取得できる完全なアドレスまたは場所です。

一方、アクティブな作業ディレクトリに関する相対パスが確立されます。

パスは、ディレクトリまたはファイルへの参照です。 Linux には、絶対パスと相対パスの 2 種類のパスがあります。

現在の作業ディレクトリによって相対パスが決まります。 一方、絶対パスは、ファイルまたはディレクトリへの完全なパスです。

Bash には、スクリプトのアドレス全体を取得する方法がいくつかあります。 realpathreadlink を使用したり、小さなカスタム スクリプトを記述したりすることもできます。

相対アドレスを使用すると、アドレス全体を簡単に取得できます。

パス全体は、ルート ディレクトリから明示的に指定されます。 / は、どれがどれであるかを簡単に知る方法です。

相対パスは /. で始まりません。 (ルートフォルダー)。 この記事では、Bash でスクリプトの絶対パスを見つける方法について説明します。

この記事では、ファイルまたはフォルダーのパス全体を特定するためのさまざまな方法について説明します。

Linux のファイルのルート ディレクトリ

ファイル システムの最上位ディレクトリは、Linux のルート ディレクトリまたは絶対ディレクトリです。 ルート ディレクトリは、スラッシュ / で示されます。

スラッシュ / で始まるフル パスを使用して、ファイル システム内の任意のファイルまたはディレクトリの場所を記述することができます。

このフル パスは絶対パスと呼ばれます。つまり、ファイル システムのルートまたは絶対先頭から実行する必要があるすべてのステップを示します。

cd コマンドを使用する

Linux オペレーティング システムの cd (ディレクトリの変更) コマンドは、現在の作業ディレクトリを変更するために使用されます。

$ cd /tmp

mkdir コマンドを使用する

次に、mkdir コマンドを使用し、その後に新しいディレクトリに付けたい名前を付けます。

$ mkdir -p dir11/dir12/dir13/dir14/dir15

touch コマンドを使用してディレクトリを作成する

新しいディレクトリを作成した後、touch コマンドを使用してファイルを作成、変更、または修正します。

コード例:

$ touch dir11/dir12/file12.txt
$ touch dir11/dir12/dir13/dir14/file14.txt
$ touch dir11/dir12/dir13/dir14/dir15/file15.txt

コードの出力:

$ tree /tmp/dir11/
/tmp/dir11/
└── dir12
    ├── dir13
    │   └── dir14
    │       ├── dir15
    │       │   └── file15.txt
    │       └── file14.txt
    └── file12.txt

上記の例では、4つのディレクトリと 3つのファイルを作成しました。 絶対ディレクトリは dir11/dir12/dir13/dir14/dir15/file15.txt です。

Linux でのファイルの相対パス

絶対パスは理解しやすいですが、特に深くネストされたディレクトリを操作している場合は、扱いにくい場合があります。

ここで相対パスが役に立ちます。 さらに、上記のコードを見ると、相対ディレクトリ パスは dir13/file12.txt です。

readlink コマンドを使用して、ファイルの完全なアドレスを取得できます。 readlink は、シンボリック リンクまたは正規ファイルのパスを取得するためによく使用されます。

ただし、readlink は相対パスから絶対パスを計算することもできます。 どのような場合でも、readlink にフラグを付ける必要があります。

そのような場合、f フラグが最も一般的に使用されます。

readlink コマンドは、正規のファイル名のリストを返します。 ファイルのパス全体を見つけるには、このコマンドの -f 引数を利用できます。

これらはディレクトリであり、これらのディレクトリにはファイルがあります。 必要なファイルの絶対パスを取得できます。

コード例:

$ cd /tmp/dir11/dir12/dir13/dir14/dir15/

パスを取得したいファイル名を書きます。

$ readlink -f file15.txt

readlink -f をファイル名とともに使用した後、ファイルの正確なパスを取得しました。これは次のとおりです。

/tmp/dir1/dir2/dir3/dir4/dir5/file5.txt

コードの出力でわかるように、必要なファイルの絶対パスを取得します。

realpath コマンドを使用して Linux で絶対パスを取得する

別の方法として、realpath コマンドを使用して、Linux でファイルの絶対パスを取得できます。

コード例:

$ cd /tmp/dir11/dir12/dir13/dir14/
$ realpath file14.txt

ファイル file14.txt のパスは次のとおりです。

/tmp/dir1/dir2/dir3/dir4/file4.txt

ご覧のとおり、realpath コマンドを使用すると、Linux でファイルの目的の絶対パスを取得できます。

find コマンドを使用して Linux で絶対パスを取得する

find コマンドを使用して、ディレクトリの構造または階層を見つけることができます。 Linux では、find コマンドを使用して、ファイルの絶対パスまたは場所を出力できます。

以下のコードを使用して、file14.txt の絶対パスを見つけます。

$ cd /tmp/dir11/
$ find $PWD -type f -name file14.txt

また、ファイル file14.txt の絶対パスは次のとおりです。

/tmp/dir11/dir12/dir13/dir14/file14.txt

上記のコード出力からわかるように、ターミナルで find コマンドを使用して、必要なファイルの絶対パスを取得します。

この記事が、Linux オペレーティング システムでファイルの絶対パスを取得する方法を理解するのに役立つことを願っています。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn