在$dir
,我想获得的所有文件/显示目录(递归)的概况,但是:如何实现类似VCS状态/忽略程序的东西?
- 排除其中包括在
$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代码而无需实际制作临时git存储库(或其他vcs工具?)?