SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【Linux】ファイルの絶対パス(フルパス)を表示する


なんでもないことですがよく忘れては調べるを繰り返しているので簡単にまとめ

Linuxで目の前にある特定ファイルの絶対パス(フルパス)を手軽に表示するメジャーなコマンドがないのです。(知らない)
カレントディレクトリはpwdコマンドで表示できるのでまぁ気にならなければ組み合わせればいいだけですが一発でパッとパスをコピーしたいときとか。

ファイルのフルパスを表示する

いくつか並べるので用途に応じて。

lsコマンドで表示する

ファイルを表示する場合は普通にlsコマンドを実行すればいいですが、それだとファイル名のみが表示されます。

・通常のlsコマンド

[wantan@localhost test]$ ls
abc.txt  dire  file1.txt  test.txt

ここにディレクトリパスを指定し少し工夫することでフルパス表示することができます。

・フルパス表示

[wantan@localhost test]$ ls /home/wantan/work/test/*
/home/wantan/work/test/abc.txt    /home/wantan/work/test/test.txt
/home/wantan/work/test/file1.txt

/home/wantan/work/test/dire:

後はコマンド自体のオプションを付与することで好みの表示にすることができます。

・縦に表示する

[wantan@localhost test]$ ls -1 /home/wantan/work/test/*
/home/wantan/work/test/abc.txt
/home/wantan/work/test/file1.txt
/home/wantan/work/test/test.txt

/home/wantan/work/test/dire:

後はカレントディレクトリ限定であれば、pwdコマンドと組み合わせることで一般化することもできます。

・pwdコマンドと組み合わせる

[wantan@localhost test]$ ls -1 `pwd`/*
/home/wantan/work/test/abc.txt
/home/wantan/work/test/file1.txt
/home/wantan/work/test/test.txt

/home/wantan/work/test/dire:

ただ、パスを表示させるのにパスを打ち込む必要があったり、全ファイルが表示されてしまったりで今回の用途で言えばあまり自分の好みではありません。

findコマンドで表示する

lsコマンドと同様のことをfindコマンドで実現することもできます。

[wantan@localhost test]$ find `pwd` -maxdepth 1
/home/wantan/work/test
/home/wantan/work/test/file1.txt
/home/wantan/work/test/abc.txt
/home/wantan/work/test/test.txt
/home/wantan/work/test/dire

・ファイルまで特定する
上記のままでは、全ファイルが表示されるので、ファイル名で絞り込むことで特定のファイルのみを表示することができます。

[wantan@localhost test]$ find `pwd` -maxdepth 1 -name file1.txt
/home/wantan/work/test/file1.txt

やや長ったらしくなりますが、基本的には万能な方法であると思います。

readlinkコマンドで表示する

上記2つのコマンドと比較するとややマイナーなコマンドになりますが、readlinkコマンドを使用することでもフルパスを表示することができます。
こちらは基本的には特定のファイルのみを対象とします。

[wantan@localhost test]$ readlink -f file1.txt
/home/wantan/work/test/file1.txt

このコマンドは簡単で使いやすいと個人的には思っていますが、元々はシンボリックリンクのリンク元を表示するようなコマンドなので、シンボリックリンクに対して使う場合には少し注意となります。

別名をつけておく

コマンドの紹介はここまでになります。
上のコマンドはフルパスを表示したいとググればすぐにでてくるコマンドですが、忘れるたびにググるのが面倒と思ったのが今回でもあります。

なので、自分が忘れないようにコマンドに別名をつけておきます。
今回はaliasコマンドを使用します。

例えば以下ではreadlinkコマンドからfullpassというコマンド名をつけておきます。

[wantan@localhost test]$ alias fullpass="readlink -f"

使用してみる。

[wantan@localhost test]$ fullpass file1.txt
/home/wantan/work/test/file1.txt

これで別名コマンドが使用できます。
しかしこのままでは一時的な設定になるので、ログインするたびに設定が反映されるようにbashの設定ファイルに追記しておきます。

・個人ユーザに適用する
共用しているLinuxシステムの個人ユーザに設定する場合には以下のようにします。
ホームディレクトリに存在する.bashrcなどにエイリアスコマンドを末尾に追記しておきます。

[wantan@localhost ~]$ vim /home/wantan/.bashrc

追記内容。

# フルパスコマンドエイリアス
alias fullpass="readlink -f"

・全ユーザに適用する
全ユーザに適用したい場合には基本的には同じ感じで対象の設定ファイルが異なるだけです。

[root@localhost wantan]# vim /etc/bashrc

bashの設定ファイルについては以下も参照。
www.wantanblog.com