特定のディレクトリを除外して、カレントディレクトリ以下のファイルを列挙する。例えば、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