Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxのpwdコマンドで現在のディレクトリを確認する方法|オプションとシンボリックリンクの挙動も解説

Linuxのコマンドラインインターフェースを操作するうえで、最初に覚えておきたい重要コマンドのひとつがpwdです。「pwd」は「print working directory(作業中のディレクトリを表示する)」の略で、現在自分がどのディレクトリにいるのかを瞬時に確認できます。

この記事では、pwdコマンドの基本的な使い方に加えて、シンボリックリンク先の「物理パス」と「論理パス」の違い、$PWD変数や$OLDPWD変数の活用方法まで、実例を交えてわかりやすく解説します。

現在いるディレクトリを確認する基本のコマンド

今いるディレクトリを調べたいときは、ターミナル(コマンドライン)を開いて次のコマンドを実行するだけです。

pwd

実行すると、以下のような出力が返ってきます。

/home/gary

システム内を移動すると、作業ディレクトリ(ワーキングディレクトリ)もそれに合わせて変化します。たとえば、cdコマンドでdocumentsフォルダへ移動した場合、pwdコマンドの出力は次のようになります。

/home/gary/documents

シンボリックリンク先に移動した場合、pwdは何を表示する?

ここで少し踏み込んだ疑問として、「シンボリックリンクされたフォルダに移動したとき、pwdは何を表示するのか」を見ていきましょう。以下のようなフォルダ構成を想定します。

  • home
    • gary
      • documents
        • folder1
        • folder2

この状態で、folder1へのシンボリックリンクを「accounts」という名前で作成してみます。

ln -s /home/gary/documents/folder1 /home/gary/documents/accounts

フォルダツリーは次のようになります。

  • home
    • gary
      • documents
        • folder1
        • folder2
        • accounts

lsコマンドを使うと、特定の場所にあるファイルやフォルダの一覧を確認できます。

ls -lt

documentsフォルダに対してlsコマンドを実行すると、accountsは次のように表示されます。

accounts -> folder2

シンボリックリンクとは、ファイルシステム上の別の場所を指し示す仕組みです。では、documentsフォルダにいて、cdコマンドでaccountsフォルダへ移動した場合、pwdの出力はどうなるのでしょうか?

答えは「/home/gary/documents/accounts」です。しかし、accountsフォルダに対してlsコマンドを実行すると、実際にはfolder2フォルダの中身が表示されます。これは、accountsがfolder2へのリンクだからです。

そこで登場するのが、次のコマンドです。

pwd -P

シンボリックリンクされたフォルダ内でこのコマンドを実行すると、「物理的な場所」が表示されます。この例では /home/gary/documents/folder2 が出力されます。

逆に「論理的なパス」を確認したい場合は、次のコマンドを使用します。

pwd -L

このコマンドは、オプションなしのpwdコマンドと同じ結果、つまり /home/gary/documents/accounts を表示します。

なお、オプションを付けずに実行したときに物理パスと論理パスのどちらがデフォルトになるかは、システム上でのpwdのビルド設定によって異なります。そのため、意図した結果を確実に得るには、-Pまたは-Lオプションを明示的に指定するのがベストプラクティスです。

$PWD変数を使ってカレントディレクトリを表示する

pwdコマンドを使わなくても、環境変数$PWDの値を表示することで、現在の作業ディレクトリを確認できます。

echo $PWD

直前にいたディレクトリを表示する方法

「ひとつ前にいたディレクトリ」を知りたい場合は、次のコマンドを実行します。

echo $OLDPWD

出力されるのは、現在のディレクトリへ移動する前にいた場所のパスです。ディレクトリ間を行き来する際に便利な機能です。

pwdには複数のバージョンが存在する点に注意

pwdコマンドは、環境設定によって挙動が異なる場合があります。代表的な例がKubuntu Linuxです。

通常pwdコマンドを実行したときに使われるのは「シェル組み込み版」で、こちらはシンボリックリンク内では論理的な作業ディレクトリを表示します。一方、次のようにフルパスで実行すると、シンボリックリンク内でも物理的な作業ディレクトリが表示されます。

/usr/bin/pwd

つまり、同じ「pwd」というコマンド名でも、実行方法によってデフォルトの挙動が正反対になることがあるのです。これこそが、-P-Lオプションの使用を習慣づけるべき理由です。

pwdで使えるその他の便利なオプション

pwdコマンドには、さらに2つの便利なオプションがあります。

まず1つ目は、バージョン情報を表示するオプションです。

pwd --version

これにより、現在使用しているpwdのバージョン番号が表示されます。ただし、シェル組み込み版のpwdに対しては--versionが機能しない場合があり、その場合は/bin/pwdに対して実行すると正常に動作します。

2つ目は、ヘルプを表示するオプションです。

pwd --help

これを実行すると、マニュアルページがターミナル画面に表示されます。こちらも同様に、シェル組み込み版では動作せず、/bin/pwd版でのみ利用可能です。

  1. iPhone・iPadの「ファイル」アプリでファイルを管理する方法を徹底解説

    iOS(およびiPadOS)に標準搭載されている「ファイル」アプリは、その実力に比べて意外と見落とされがちな隠れた優秀アプリです。一見するとシンプルなファイルマネージャーに思えますが、モバイルでの作業効率を高めるうえで驚くほど多くの機能を備えています。「ファイル」アプリを使えば、ローカルとクラウドの両方のファイルにアクセスできるほか、外部ドライブからの読み込み、ファイルの整理、さまざまな形式のファイル閲覧なども行えます。ここでは、「ファイル」アプリを使ってiOS上でファイルを管理する方法を詳しく解説します。1. 新しい保存先を追加してクラウドサービスと連携する「ファイル」アプリには、デバイス本

  2. Linuxのwatchコマンドの使い方と実用例をわかりやすく解説

    Linuxのwatchコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その結果を画面に表示し続けるためのツールです。コマンドの出力が時間とともにどう変化するかをリアルタイムで監視したい場合に非常に便利です。この記事では、watchコマンドの基本的な使い方と、覚えておくと役立つ実用的な例を紹介します。 watchコマンドの基本構文 watchコマンドの構文は以下のとおりです。 watch オプション コマンド 各要素の意味は次のとおりです。 オプション: 後述の表から選択したオプションを指定します。watchコマンドのデフォルト動作を変更できます。 コマンド: watchが繰り返し実行