ディレクトリ ツリー構造で動作するファイル パーサーをプログラムしようとしています。特定のリーフ ディレクトリを見つけたら、パスを構成するすべてのディレクトリを調べて、それらの中でいくつかの操作を実行します。
パスが次のとおりだとしましょう: /d1/d2/d3
. ここで、ファイルx
が存在するかどうかを確認したいと思います。/d1
/d1/d2
/d1/d2/d3
もちろん、次のようなこともできます。
fields=`find $base_dir -name "leaf_directory" | grep -o "/" | wc -l`
[[ $fields > 0 ]] || exit 1
for (( i=1; i <= $fields + 1; i++ )) do
current_dir="`find $base_dir -name "leaf_directory" | cut -d "/" -f $i`"
source_path="$source_path$current_dir/"
if [ -f $source_path$file ]; then
# do sth.
fi
done
しかし、これに対するよりエレガントな解決策はありますか?
ありがとうございました。