ディレクトリにファイルのリストを作成する必要がありますが、除外するディレクトリのリストを含むファイルも渡す必要があります。
次の提案を見ましたが、フラグを入力すると幸運ではありません。
find $dir_name $(printf "! -name %s " $(cat $exclude_file))
これを行う方法はありますか?それとも、完全なリストを作成し、それを見て、除外されたディレクトリの一部と一致するものを削除する必要がありますか?
答え1
名前以外のパスが含まれている場合は、それらを一致させるためにexclude_file
使用する必要があります。-path
一致するディレクトリのサブディレクトリを除外するには、サブ-prune
ディレクトリも必要です。これは働きます:
find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print
ファイルを表示したい場合は、ファイルを印刷してください。
find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print