ディレクトリ以下の特定ディレクトリを除外しファイル列挙
特定のディレクトリを除外して、カレントディレクトリ以下のファイルを列挙する。例えば、include
を除いて、.h
ファイルを全部列挙。
findを使って以下のようにかける。
find . -type d -name "include" -prune -o -name "*.h" -print
列挙したファイルのファイル名とカレントディレクトリからの相対パスはbasename
とdirname
で得られる。
#!/bin/sh FILEPATHS=`find . -type d -name "include" -prune -o -name "*.h" -print` for filepath in $FILEPATHS; do BASEPATH=`basename $filepath` DIRNAME=`dirname $filepath` echo $BASEPATH echo $DIRNAME done