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

4cf6decffa489526b8c7d44f766ede18.gif

コマンド ラインで pwd コマンドを使用すると、現在のディレクトリのフル パス (絶対パス) を取得できることは誰もが知っています。

pwd

では、ファイルの絶対パスを取得するにはどうすればよいでしょうか? ファイルのフルパスを出力するには、いくつかの方法があります。

  • 読むリンク

  • 実パス

  • 探す

  • ls と pwd を組み合わせて使用​​します

$ readlink -f sample.txt
/home/gliu/sample.txt
$ realpath -s sample.txt
/home/gliu/sample.txt
$ find $(pwd) -name sample.txt
/home/gliu/sample.txt

以下にこれらのコマンドを詳しく紹介します。ただし、その前に、絶対パスと相対パスの概念に関連する基本的な知識を理解することをお勧めします。

8e21ae556b1ba092d1ef06a2731e7b1e.png

readlinkを使用してファイルパスを取得します

readlink の本来の用途はシンボリック リンクを解析することですが、次のようにファイルのフル パスを表示するために使用できます。

readlink -f filename

   以下は例です。

$ readlink -f sample.txt 
/home/gliu/sample.txt

f838a47a617bc75acb1c57bc69ff8c6e.png

realpath を使用してファイルのフルパスを取得します

realpath はもともと絶対ファイル名を解析するために使用されていましたが、ここではファイルのフル パスを表示するためにも使用できます。

realpath filename

以下に例を示します。

$ realpath sample.txt 
/home/gliu/sample.txt

シンボリック リンクを使用している場合は、元のファイルへの実際のパスが表示されます。シンボリックリンクをたどらないように強制できます (つまり、現在のファイルへのパスを表示します)。

realpath -s filename

以下に例を示します。デフォルトではソース ファイルへのフル パスが表示されますが、元のファイルの代わりにシンボリック リンクを表示するように強制します。

$ realpath linking-park 
/home/gliu/Documents/ubuntu-commands.md
$ realpath -s linking-park 
/home/gliu/linking-park

48540fead51885b9dfaa0129f0e52e81.png

find コマンドを使用してファイルの絶対パスを取得します

find コマンドを使用してファイル パスを取得する方法は次のとおりです。

find コマンドでは、指定されたパスがドットの場合は相対パスが表示され、指定されたパスが絶対パスの場合は検索ファイルの絶対パスを取得できます。

次のように、find コマンドでコマンド プレースホルダーを使用します。

find $(pwd) -name filename

これを使用して、単一ファイルの絶対パスを取得できます。

$ find $(pwd) -name sample.txt
/home/gliu/sample.txt

あるいは、一致するパターン (アスタリスク* など) を使用して、一連のファイルへのパスを取得することもできます。

$ find $(pwd) -name "*.pdf"
/home/gliu/Documents/eBooks/think-like-a-programmer.pdf
/home/gliu/Documents/eBooks/linux-guide.pdf
/home/gliu/Documents/eBooks/absolute-open-bsd.pdf
/home/gliu/Documents/eBooks/theory-of-fun-for-game-design.pdf
/home/gliu/Documents/eBooks/Ubuntu 1804 english.pdf
/home/gliu/Documents/eBooks/computer_science_distilled_v1.4.pdf
/home/gliu/Documents/eBooks/the-art-of-debugging-with-gdb-and-eclipse.pdf

db82de87176cf076b10fd32df398dc19.png

ls コマンドを使用してフルパスを出力します

ls コマンドを使用してファイルの絶対パスを取得します。これは少し複雑です。

次のように、ls コマンドで環境変数 PWD を使用して、ファイルとディレクトリの絶対パスを表示できます。

ls -ld $PWD/*

上記のコマンドを使用すると、次の出力が得られます。

$ ls -ld $PWD/*
-r--rw-r-- 1 gliu gliu    0 Jul 27 16:57 /home/gliu/test/file2.txt
drwxrwxr-x 2 gliu gliu 4096 Aug 22 16:58 /home/gliu/test/new

上記のコマンドを使用してファイルの絶対パスを出力するには、次のように使用できます。

ls -l $PWD/filename

これは最良の解決策ではありませんが、機能します。以下の例を参照してください。

$ ls -l $PWD/sample.txt 
-rw-r--r-- 1 gliu gliu 12813 Sep  7 11:50 /home/gliu/sample.txt

上記では、Linux でファイルのフル パスを取得する 4 つの方法を紹介しました。そのうち、find と ls コマンドが最も一般的です。realpath と readlink の 2 つの方法は、多くの新規ユーザーには明らかかもしれませんが、常に方法があります。時々新しいことを学ぶのは良いことです。

他にアイデアがある場合は、メッセージ領域でお気軽にご相談ください。

df26f9f1dc0f3fbe9ab1b227ff664605.gif

おすすめ

転載: blog.csdn.net/FL63Zv9Zou86950w/article/details/126945089#comments_28612659