Bash
訪問版本控制下的所有目錄
是否有一個
find
咒語可以讓我訪問 SVN 版本控制下的所有目錄?我正在嘗試使用execdir
開關添加到svn:ignore
每個目錄中的屬性。就像是:find . -type d -execdir svn propset svn:ignore -F <((svn propget svn:ignore; echo "new ignore pattern") | sort -u) .' \;
但我不能
find
僅限於 SVN 目錄。
對於舊版本
svn
,您.svn
在每個目錄中都有一個受修訂控制的目錄,您可以執行以下操作:find . -name .svn -type d -prune -execdir bash -c ' cd -P .. && propset svn:ignore -F <( (svn propget svn:ignore; echo "new ignore pattern") | sort -u) .' bash {} \;
對於較新的,您只有一個
.svn
和一個 sqlite3 數據庫:find . -path '*/.svn/wc.db' -execdir bash -c ' cd -P .. && sqlite3 .svn/wc.db "select local_relpath from NODES where kind == \"dir\"" | while IFS= read -r dir; do [ -d "$dir" ] && propset svn:ignore -F <( (svn propget svn:ignore "$dir"; echo "new ignore pattern") | sort -u ) "$dir" done' bash {} \;