ファイルのフルパス名を取得する方法・find †普通にlsコマンドを利用した場合ではファイルのフルパス名を取得することができません。 $ ls -dF /home/sakura/* /home/sakura/japan/ /home/sakura/sakura.txt /home/sakura/world/ /home/sakura/kiku.txt /home/sakura/tsubaki.txt フルパスを取得したい場合は、findコマンドを利用すると便利です。 findコマンドでファイルのフルパス名を取得する †findコマンドを利用すれば簡単にファイルのフルパス名を取得することができます。 find `pwd` -maxdepth 1 -mindepth 1 上記のコマンドの意味は pwd コマンドにより、現在のカレントディレクトリを取得し、-maxdepthによりディレクトリ階層を指定しています。
実行例 †ホームディレクトリの状態は以下のようになっています。 $ ls -ltr 合計 8 drwxrwxr-x 2 sakura sakura 4096 11月 15 18:20 japan drwxrwxr-x 2 sakura sakura 4096 11月 15 18:21 world -rw-rw-r-- 1 sakura sakura 0 11月 15 18:21 sakura.txt -rw-rw-r-- 1 sakura sakura 0 11月 15 18:21 tsubaki.txt -rw-rw-r-- 1 sakura sakura 0 11月 15 18:21 kiku.txt [sakura@centos ~]$ pwd /home/sakura find `pwd` -maxdepth 1 を実行(-mindepth 1を指定しない) †find `pwd` -maxdepth 1 [sakura@centos ~]$ find `pwd` -maxdepth 1 /home/sakura /home/sakura/.bash_logout /home/sakura/.gconfd /home/sakura/sakura.txt /home/sakura/.ssh /home/sakura/.bashrc /home/sakura/japan /home/sakura/.rpmmacros /home/sakura/.zshrc /home/sakura/.bash_history /home/sakura/kiku.txt /home/sakura/tsubaki.txt /home/sakura/world /home/sakura/.emacs /home/sakura/.gnome2 /home/sakura/.viminfo /home/sakura/.lesshst /home/sakura/.history /home/sakura/.gconf /home/sakura/.gnome2_private /home/sakura/.bash_profile /home/sakura/.mozilla /home/sakura (0階層目が表示されている) find `pwd` -maxdepth 1 -mindepth 1 を実行 †find `pwd` -maxdepth 1 -mindepth 1 [sakura@centos ~]$ find `pwd` -maxdepth 1 -mindepth 1 /home/sakura/.bash_logout /home/sakura/.gconfd /home/sakura/sakura.txt /home/sakura/.ssh /home/sakura/.bashrc /home/sakura/japan /home/sakura/.rpmmacros /home/sakura/.zshrc /home/sakura/.bash_history /home/sakura/kiku.txt /home/sakura/tsubaki.txt /home/sakura/world /home/sakura/.emacs /home/sakura/.gnome2 /home/sakura/.viminfo /home/sakura/.lesshst /home/sakura/.history /home/sakura/.gconf /home/sakura/.gnome2_private /home/sakura/.bash_profile /home/sakura/.mozilla /home/sakura が表示されていない。 隠しファイルを除外する †grepコマンドを利用して隠しファイルを除外します。 find `pwd` -maxdepth 1 -mindepth 1 | grep -v "\/\." [sakura@centos ~]$ find `pwd` -maxdepth 1 -mindepth 1 | grep -v "\/\." /home/sakura/sakura.txt /home/sakura/japan /home/sakura/kiku.txt /home/sakura/tsubaki.txt /home/sakura/world 上記のgrepのパターンは/.が含まれる文字列を-vオプションにて対象外にしています。 2階層まで対象としてみる †maxdepthに2を指定して2階層までを対象にする場合。 find `pwd` -maxdepth 2 -mindepth 1 | grep -v "\/\."
スクリプトにして実行(番外編) †以下のようなスクリプトにしてもできます。 for F in `ls` do echo `pwd`/$F done スクリプト実行結果 †[sakura@centos ~]$ for F in `ls`; do echo `pwd`/$F; done /home/sakurajapan /home/sakurakiku.txt /home/sakurasakura.txt /home/sakuratsubaki.txt /home/sakuraworld 関連資料 †
|