プロジェクトのファイルを表示する find コマンドがあります。
find . -type f -not -path './node_modules*' -a -not -path '*.git*' \
-a -not -path './coverage*' -a -not -path './bower_components*' \
-a -not -name '*~'
.gitignoreのファイルが表示されないようにファイルをフィルタリングする方法は?
私は以下を使用していると思いました。
while read file; do
grep $file .gitignore > /dev/null && echo $file;
done
ただし、.gitignoreファイルはglobパターンを持つことができます(ファイルが.gitignoreにある場合はパスとは機能しません)。 globがある可能性のあるパターンに基づいてファイルをフィルタリングするにはどうすればよいですか?
ベストアンサー1
git
供給git-check-ignore
ファイルが除外されていることを確認してください.gitignore
。
したがって、次のものを使用できます。
find . -type f -not -path './node_modules*' \
-a -not -path '*.git*' \
-a -not -path './coverage*' \
-a -not -path './bower_components*' \
-a -not -name '*~' \
-exec sh -c '
for f do
git check-ignore -q "$f" ||
printf '%s\n' "$f"
done
' find-sh {} +
スキャンはファイルごとに行われ、膨大な費用がかかります。