MW211 EXIT

devlog
C言語/ファイルのフルパスを取得する方法
2013年05月05日
┌──────────────────────────────────────┐
│ls /aaa/bbb/*.txt                                                           │
└──────────────────────────────────────┘
上記みたいにフルパスで指定すれば、フルパスで結果が得られる
┌──────────────────────────────────────┐
│/aaa/bbb/ccc.txt                                                            │
└──────────────────────────────────────┘

でも、「/aaa/bbb」とかにいて、相対パスつまり「ls」ってだけコマンドを打つと
ファイル名しか取得できない。
┌──────────────────────────────────────┐
│ccc.txt                                                                     │
└──────────────────────────────────────┘

こういう場合は、以下のようにすればフルパスがとれるらしい。
┌──────────────────────────────────────┐
│find `pwd`                                                                  │
└──────────────────────────────────────┘

「find」コマンドに従って絞り込みもできる。
┌──────────────────────────────────────┐
│find `pwd` -name "ccc.txt"                                                  │
└──────────────────────────────────────┘

パイプを使うのもありだ。
┌──────────────────────────────────────┐
│find `pwd` | grep "ccc.txt"                                                 │
└──────────────────────────────────────┘

ちなみにディレクトリを指定するとその配下のファイル名のみが表示されるが。
┌──────────────────────────────────────┐
│ls ../aaa/bbb                                                               │
├──────────────────────────────────────┤
│ccc.txt                                                                     │
└──────────────────────────────────────┘

ワイルドカードで配下ファイルを指定してやると、そこまでのパスも表示されるようだ。
┌──────────────────────────────────────┐
│ls ../aaa/bbb/*                                                             │
├──────────────────────────────────────┤
│../aaa/bbb/ccc.txt                                                          │
└──────────────────────────────────────┘
分類:Linuxシェル