logo

Linux でファイルのフルパスを取得する方法

私たちはシェル スクリプトを作成するときに Linux ファイルを操作することがよくあります。ただし、作業中のファイルの完全なパスを知る必要がある場合があります。この記事では、ファイルの完全なパスを取得する方法について説明します。特定のファイルの場所を見つけるのに役立ついくつかの方法をリストしました。

ただし、先に進む前に、まずファイルを作成しましょう。

上記の出力は、file.txt が正常に作成されたことを明確に示しています。



次に、ファイルのフルパスを取得するメソッドを見てみましょう。この記事には合計 6 つの方法が記載されています。それらには次のものが含まれます。

方法 1: readlinkコマンド

readlink コマンドは、正規のファイル名を出力するために使用されます。 -f オプションを readlink と組み合わせて使用​​し、ファイルの場所を出力します。実装と出力は次のとおりです。

方法 2: realpath コマンド

realpath コマンドは、ファイルの絶対パスを表示します。 readlink コマンドとは異なり、ここではオプションを使用しません。実装と出力は以下のとおりです。

方法 3: dirname コマンド

もう 1 つの興味深いオプションは dirname コマンドです。ファイルのフルパスを取得し、パスからファイル名を取り除き、残りを画面に表示します。以下の実装と出力を確認してください。

Cで配列の長さを取得する

方法 4: basenameコマンドとdirnameコマンドの組み合わせ

dirname コマンドの使用方法を説明しました。しかし、このコマンドでできることは他にもあります。このコマンドを、basename という別のコマンドと組み合わせることができます。 Basename コマンドは、dirname とはまったく逆のことを行います。ファイルのフルパスを取得し、ファイル名の前にあるものをすべて取り除き、残りを画面に表示します。

それでは、デモンストレーションに移ります。ただし、basename と dirname を組み合わせて使用​​する方法を示す前に、まず、basename がどのように機能するかを見てみましょう。

明らかに、上記の出力にはファイル名のみが表示されます。

次に、上記のコマンドをどのように組み合わせて使用​​できるかを見ていきます。 file_path.sh という名前のシェル スクリプトを作成しましょう。これには次の内容が含まれます。

#!/bin/bash echo '$(cd '$(dirname '')' && pwd -P)/$(basename '')'>

上記では、dirname コマンドを使用してファイルの場所を見つけました。これを最初のコマンド ライン引数として入力します。次に、ファイルの場所に移動し、現在の作業ディレクトリを出力します。 -P コマンドを使用して、ファイルの物理的な場所を要求しました。最後に、basename コマンドを使用してファイル名のみを出力しました。

上記のシェル スクリプトを実行すると、出力は次のようになります。

上で、ファイルの完全なパスを取得するために、これら 2 つのコマンドの出力が 1 つに連結されていることがわかります。

方法 5: 検索コマンド

検索コマンド ファイルのフルパスを取得する別の方法です。それがどのように機能するかを見てみましょう:

上記では、find コマンドと次のサブコマンドを使用して、ファイルの場所を取得しました。

  • -タイプf コマンドはファイルを探すのに役立ちます。
  • -名前 コマンドは、現在の作業ディレクトリとそのサブディレクトリ内のファイルを検索するのに役立ちます。

上記の出力は、ファイルの完全なパスを明確に示しています。

好きと好きの違い

方法 6: lsコマンド

さらに別の方法は、ls コマンドを使用することです。ディレクトリが引数として渡されると、そのディレクトリ内にあるすべてのファイルとフォルダーが一覧表示されます。ただし、ファイル名が pwd コマンドとともに渡されると、コマンドによってファイルの場所が表示されます。以下を参照してください。

上で、ファイルのフルパスが画面に表示されていることがわかります。

結論 :

この記事では、ファイルの完全なパスを取得するいくつかの便利な方法について説明しました。したがって、次回行き詰まったときは、上記のいずれかの方法を使用して、すぐに答えを見つけてください。