在$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工具?)?