svn 命令行 批量刪除和批量添加

若是使用svn的命令行,例如在linux下的終端中使用, linux

svn的添加命令是svn add,刪除命令是svn del,可是缺少批量的操做,若是我在資源管理器中,手動添加了好多個文件夾下的各類各樣的文件,而後我想一次性add,svn就力不從心了,即便使用 svn add *,也會由於新添文件的父目錄已經被添加進版本庫而忽略父目錄下的全部文件。手動刪除了不少文件,想要一次性del時,也會遇到相似的狀況。 svn


經過研究,發現如下的命令可以解決這兩個問題: 命令行

批量刪除文件—— 資源

svn status|grep ! |awk '{print $2}'|xargs svn del awk

語句釋義是:首先svn status查看svn狀態,列出全部改動,打!號的是已經刪除的文件可是還未標記成從庫中除去,grep !將這些文件單獨抽離出來, 終端

此時若是不執行後面的語句,呈現的內容應該是相似 grep

!       img/p/2-49-small.jpg
!       img/p/2-48-thickbox.jpg
!       img/p/2-48-medium.jpg

再用awk '{print $2}'將抽離出來的文本結果處理,留下每一行的第二段文字,即後面的文件名, im

此處必須注意,svn status|grep !和後面的語句|awk '{print $2}'|xargs svn del之間,必須有一個空格,不然終端仍是會認爲這個!號是特殊符號 img

此時呈現的結果應該是 刪除文件

img/p/2-49-small.jpg
img/p/2-48-thickbox.jpg
img/p/2-48-medium.jpg

這個時候就能夠直接遞交給svn del命令了,使用xargs這個參數構造命令,將每一行的文本做爲參數提供給svn del,結果就是全部列出的文件都執行了一遍del了。


批量添加文件——

幾乎同樣,不一樣的是svn標記的符號不一養,使用的是問號!

svn status|grep ? |awk '{print $2}'|xargs svn add

相關文章
相關標籤/搜索