それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ディレクトリの中を再帰的に全部を一覧表示するコマンド4種

ディレクトリの中身を全部表示するコマンドって色々あるんですね

その場その場で、いくつも使ってると、何処でどれ使うか頭のなかがごった煮になるので、ちょっと整理しておきます。

ls -R コマンド

定番の ls コマンドに -R をつけると、再帰的に検索して表示することが出来ます。

takuya@atom:/var/tftpd/debian-installer$ ls -R
.:
i386

./i386:
boot-screens  initrd.gz  linux  pxelinux.0  pxelinux.cfg

./i386/boot-screens:
adtxt.cfg   exithelp.cfg  f10.txt  f3.txt  f5.txt  f7.txt  f9.txt  lxde      prompt.cfg  splash.png   syslinux.cfg  vesamenu.c32
dtmenu.cfg  f1.txt        f2.txt   f4.txt  f6.txt  f8.txt  kde     menu.cfg  rqtxt.cfg   stdmenu.cfg  txt.cfg       xfce

./i386/boot-screens/kde:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

./i386/boot-screens/lxde:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

./i386/boot-screens/xfce:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

./i386/pxelinux.cfg:
debian-live.cfg  default  default.org

階層が浅くてファイル数が少ないなら便利

ls -R は更に -l -a -t も付加が可能

ls -R といつもの ls -alt --color を同時に使うことができるので、階層が浅いなら結構便利。

takuya@atom:/var/tftpd/debian-installer$ ls -Ralt
.:
合計 12
drwxrwsr-x 6 root   sudo 4096  2月  9 02:54 ..
drwxrwsr-x 3 takuya sudo 4096  7月 15  2014 .
drwxrwsr-x 4 takuya sudo 4096  7月 15  2014 i386

./i386:
合計 8716
drwxrwsr-x 5 takuya sudo    4096  7月 15  2014 boot-screens
drwxrwsr-x 2 takuya sudo    4096  7月 15  2014 pxelinux.cfg
drwxrwsr-x 4 takuya sudo    4096  7月 15  2014 .
drwxrwsr-x 3 takuya sudo    4096  7月 15  2014 ..
-rwxrwxr-x 1 takuya sudo 6683528  7月 15  2014 initrd.gz
-rwxrwxr-x 1 takuya sudo 2195008  7月 15  2014 linux
-rwxrwxr-x 1 takuya sudo   26816  7月 15  2014 pxelinux.0
(ry
./i386/pxelinux.cfg:
合計 12
-rwxrwxr-x 1 takuya sudo  262 10月  6 01:07 debian-live.cfg
drwxrwsr-x 2 takuya sudo 4096  7月 15  2014 .
lrwxrwxrwx 1 takuya sudo   28  7月 15  2014 default -> ../boot-screens/syslinux.cfg
lrwxrwxrwx 1 takuya sudo   28  7月 15  2014 default.org -> ../boot-screens/syslinux.cfg
drwxrwsr-x 4 takuya sudo 4096  7月 15  2014 ..

tree コマンド

tree コマンドも定番ですね。tree コマンドでファイルとフォルダの一覧ができる。

ファイル数が少ない割に階層が深くなってる時に便利。

takuya@atom:/var/tftpd/debian-installer$ tree
.
└── i386
    ├── boot-screens
    │   ├── adtxt.cfg
    │   ├── dtmenu.cfg
    │   ├── exithelp.cfg
    │   ├── f1.txt
    │   ├── f10.txt
    │   ├── f2.txt
    │   ├── f3.txt
    │   ├── f4.txt
    │   ├── f5.txt
    │   ├── f6.txt
    │   ├── f7.txt
    │   ├── f8.txt
(中簡略
    ├── initrd.gz
    ├── linux
    ├── pxelinux.0
    └── pxelinux.cfg
        ├── debian-live.cfg
        ├── default -> ../boot-screens/syslinux.cfg
        └── default.org -> ../boot-screens/syslinux.cfg

6 directories, 48 files

find コマンド

これも、便利な find コマンド。

find はファイル名・ディレクトリ名の一覧をだして、他で再利用するときに便利。

わたしはMacOSXで、動画の一覧とか欲しい時に

find -type f *.mp4 | pbcopy

とかよくやってます。

find の例。

takuya@atom:/var/tftpd/debian-installer$ find
.
./i386
./i386/pxelinux.0
./i386/linux
./i386/boot-screens
./i386/boot-screens/f5.txt
./i386/boot-screens/f9.txt
./i386/boot-screens/f10.txt
./i386/boot-screens/xfce
./i386/boot-screens/xfce/menu.cfg
./i386/boot-screens/xfce/prompt.cfg
./i386/boot-screens/xfce/prmenu.cfg
./i386/boot-screens/xfce/txt.cfg
./i386/boot-screens/xfce/adtxt.cfg
./i386/boot-screens/xfce/txtdt.cfg
./i386/boot-screens/xfce/adtxtdt.cfg
./i386/boot-screens/lxde
./i386/boot-screens/lxde/menu.cfg
./i386/boot-screens/lxde/prompt.cfg
./i386/boot-screens/lxde/prmenu.cfg
./i386/boot-screens/lxde/txt.cfg
./i386/boot-screens/lxde/adtxt.cfg
./i386/boot-screens/lxde/txtdt.cfg
./i386/boot-screens/lxde/adtxtdt.cfg
./i386/boot-screens/menu.cfg
./i386/boot-screens/f8.txt
./i386/boot-screens/prompt.cfg
./i386/boot-screens/f1.txt
./i386/boot-screens/f2.txt
./i386/boot-screens/f7.txt
./i386/boot-screens/kde
./i386/boot-screens/kde/menu.cfg
./i386/boot-screens/kde/prompt.cfg
./i386/boot-screens/kde/prmenu.cfg
./i386/boot-screens/kde/txt.cfg
./i386/boot-screens/kde/adtxt.cfg
./i386/boot-screens/kde/txtdt.cfg
./i386/boot-screens/kde/adtxtdt.cfg
./i386/boot-screens/rqtxt.cfg
./i386/boot-screens/f6.txt
./i386/boot-screens/txt.cfg
./i386/boot-screens/adtxt.cfg
./i386/boot-screens/f3.txt
./i386/boot-screens/exithelp.cfg
./i386/boot-screens/syslinux.cfg
./i386/boot-screens/f4.txt
./i386/boot-screens/stdmenu.cfg
./i386/boot-screens/splash.png
./i386/boot-screens/vesamenu.c32
./i386/boot-screens/dtmenu.cfg
./i386/initrd.gz
./i386/pxelinux.cfg
./i386/pxelinux.cfg/default.org
./i386/pxelinux.cfg/default
./i386/pxelinux.cfg/debian-live.

ディレクトリだけ、ファイルだけ

find はファイルを一覧しつつ、検索条件に一致したものだけを抜き出してくれるので、検索条件をつけることが出来る。

find -type f # ファイルだけ
find -type d ## ディレクトリだけ

bash globstar + ls

最近はもっぱらコレ

globstar で一覧するのも便利かも。

ls -R と本質的には変わらないんだけど、 globstar で引数をshell展開すると、表示の前半にファイルが集まってくれるので便利。

takuya@atom:/var/tftpd/debian-installer$ ls **/*
i386/boot-screens/adtxt.cfg     i386/boot-screens/f9.txt            i386/boot-screens/lxde/prompt.cfg  i386/boot-screens/xfce/adtxtdt.cfg
i386/boot-screens/dtmenu.cfg    i386/boot-screens/kde/adtxt.cfg     i386/boot-screens/lxde/txt.cfg     i386/boot-screens/xfce/menu.cfg
i386/boot-screens/exithelp.cfg  i386/boot-screens/kde/adtxtdt.cfg   i386/boot-screens/lxde/txtdt.cfg   i386/boot-screens/xfce/prmenu.cfg
i386/boot-screens/f1.txt        i386/boot-screens/kde/menu.cfg      i386/boot-screens/menu.cfg         i386/boot-screens/xfce/prompt.cfg
i386/boot-screens/f10.txt       i386/boot-screens/kde/prmenu.cfg    i386/boot-screens/prompt.cfg       i386/boot-screens/xfce/txt.cfg
i386/boot-screens/f2.txt        i386/boot-screens/kde/prompt.cfg    i386/boot-screens/rqtxt.cfg        i386/boot-screens/xfce/txtdt.cfg
i386/boot-screens/f3.txt        i386/boot-screens/kde/txt.cfg       i386/boot-screens/splash.png       i386/initrd.gz
i386/boot-screens/f4.txt        i386/boot-screens/kde/txtdt.cfg     i386/boot-screens/stdmenu.cfg      i386/linux
i386/boot-screens/f5.txt        i386/boot-screens/lxde/adtxt.cfg    i386/boot-screens/syslinux.cfg     i386/pxelinux.0
i386/boot-screens/f6.txt        i386/boot-screens/lxde/adtxtdt.cfg  i386/boot-screens/txt.cfg          i386/pxelinux.cfg/debian-live.cfg
i386/boot-screens/f7.txt        i386/boot-screens/lxde/menu.cfg     i386/boot-screens/vesamenu.c32     i386/pxelinux.cfg/default
i386/boot-screens/f8.txt        i386/boot-screens/lxde/prmenu.cfg   i386/boot-screens/xfce/adtxt.cfg   i386/pxelinux.cfg/default.org

i386:
boot-screens  initrd.gz  linux  pxelinux.0  pxelinux.cfg

i386/boot-screens:
adtxt.cfg   exithelp.cfg  f10.txt  f3.txt  f5.txt  f7.txt  f9.txt  lxde      prompt.cfg  splash.png   syslinux.cfg  vesamenu.c32
dtmenu.cfg  f1.txt        f2.txt   f4.txt  f6.txt  f8.txt  kde     menu.cfg  rqtxt.cfg   stdmenu.cfg  txt.cfg       xfce

i386/boot-screens/kde:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

i386/boot-screens/lxde:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

i386/boot-screens/xfce:
adtxt.cfg  adtxtdt.cfg  menu.cfg  prmenu.cfg  prompt.cfg  txt.cfg  txtdt.cfg

i386/pxelinux.cfg:
debian-live.cfg  default  default.org

まとめ

  • 他で使う一覧がほしい⇛ find
  • パパっと見たい ⇛ ls -R
  • 階層構造をメールで送りたい ⇛ tree

こんな感じですかね。