ドットファイルを隠してみる

前回までのfindによるファイルリスティングをさらに進めて、
ドットファイルの場合は表示リストに入れないようにしてみる。
ドットファイルがディレクトリの場合は非表示にするだけでなく、
そのディレクトリ下のファイル全てをリストアップしないようにする。

前回の方法で、

$ find -type f -print , -type d -empty -printf %p/\\n | sort
./.bzr/README
./.bzr/branch-format
./.bzr/branch-lock/
./.bzr/branch/branch.conf
./.bzr/branch/format
...snip
./.bzr/repository/upload/
./.bzrignore
./articles.tex
./bylaws/
./fig-1-1.eps

のようなディレクトリに対して、

$ find -name .?\* -prune -o \( -type f -print , -type d -empty -printf %p/\\n \) | sort
./articles.tex
./bylaws/
./fig-1-1.eps

まず、ドットファイルについて枝刈りを行った上で、
残りのファイルを前回の方法で表示している。
これによって、ディレクトリ .bzr とその下の全ファイル、
および、ファイル .bzrignore を除外できた、

ドットファイルを .* でなく .?* で指定しているのは、
カレントディレクトリ . を除外しないためである。
.* としてしまうとカレントディレクトリ以下が刈られて何も表示されない。