lsコマンドでファイルのフルパスを取得する方法

lsコマンドでファイルのフルパスを取得する方法

Posted at March 27,2018 12:03 AM
Tag:[Linux]

lsコマンドでファイルのフルパスを取得する方法を紹介します。

1.問題点

lsコマンドは、カレントディレクトリまたは指定したディレクトリのファイル一覧を表示するコマンドです。

ここではカレントディレクトリのファイルを表示させています。

% pwd
/home/hoge
% ls -l
合計 0
-rw-r--r--. 1 root root 0  3月 26 10:56 aaa
-rw-r--r--. 1 root root 0  3月 26 10:56 bbb
-rw-r--r--. 1 root root 0  3月 26 10:56 ccc

この表示されたファイルのフルパス、

/home/hoge/aaa
/home/hoge/bbb
/home/hoge/ccc

を取得したいのですが、方法が分かりません。

ということで、lsコマンドでファイルのフルパスを取得する方法を紹介します。

2.lsコマンドでファイルのフルパスを取得する

ファイルのフルパスを取得するには、下記のように、xargsコマンド・readlinkコマンドを組み合わせます。

% ls -1 | xargs readlink -f
/home/hoge/aaa
/home/hoge/bbb
/home/hoge/ccc

xargsは、標準入力から生成したコマンドラインを実行してくれるコマンドです。

readlinkは、シンボリックリンクの値または正規化されたファイル名を表示するコマンドで、オプションに"-f/-e/-m"のいずれかを付与することでフルパスを取得することができます。

"-f/-e/-m"オプションの意味は次のとおりです(manコマンドからの抜粋)。

  • -f, --canonicalize:与えられた名前の要素中に存在するシンボリックリンクを 再帰的に全て辿る。最後の要素以外は存在しなければいけない
  • -e, --canonicalize-existing:与えられた名前の要素中に存在するシンボリックリンクを 再帰的に全て辿る。最後の要素も含めて全て存在しなければいけない
  • -m, --canonicalize-missing:与えられた名前の要素中に存在するシンボリックリンクを 再帰的に全て辿る。要素が存在しなくてもよい
関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)