findを使用して検索するときに無視したいディレクトリ/ファイルのリストを含むファイルがあります。次のようになります。
.git
.vim
config
.vimrc
.bashrc
このリストは完全ではなく、必要な数のアイテムを含めることができます。 .を使用するときにこれらのファイル/ディレクトリをどのように無視できますかfind
?
これを試しましたが、find . -type f ! -path ...
動的リストをパラメータとして渡すことはできません。
ベストアンサー1
拡張正規表現(BSD、GNU)をサポートする実装では、find
次のことができます。-regex
-E -regex
-regextype posix-extended -regex
find . -regextype posix-extended -regex "\./($(
sed 's@[][\\|^$.*+?{}()]@\\&@g' < list | paste -sd '|' -))" -prune -o \( \
-type f -print \)
これは、これらのファイル/ディレクトリとその中にあるすべてのファイル/サブディレクトリを除外find
します-prune
。
..
\.
.*