で$dir
、すべてのファイル/ディレクトリの概要を(再帰的に)取得したいのですが、
- に含まれるすべてのファイル/ディレクトリを除外します
$list
($list が改行で区切られていると仮定します) $list
その下のツリー全体ではなく、含まれていない最上位のディレクトリのみを含めます
私は現在使用しています:
cd $dir && git init && echo "$list" > .gitignore && git status && rm -rf .git .gitignore
これは単純で、「追跡されていないファイル」のリストは私が必要としているものですが、tmp git リポジトリの不要なファイルシステム I/O を大量に実行し、ファイルを無視するため、実際にはクリーンではありません。
find
また、剪定アクションなどについて熟考してきましempty=$(mktemp -d) && rsync -nv --exclude-from=$list $dir/ $empty
たが、それらは私が望むようには機能しません。
これをどのように実装しますか?これを行う既存の shell/python/... ツールはありますか? または、実際に一時的な git リポジトリ (または別の vcs ツール?) を作成せずに、どうにかして git コードを再利用できますか?