2017-09-03 148 views
0

我想從本地計算機上通過ssh將文件上傳到服務器進行部署。在上傳中,我想排除一些文件,如.pyc和BUILD。從rsync排除BUILD文件

我設法排除所有的文件,但名爲BUILD的文件。

這是目前我(幹運行)終端命令:

rsync -e ssh --dry-run \ 
    --recursive --archive --verbose \ 
    --delete \ 
    --exclude='*.pyc' \ 
    --exclude='*.scss' \ 
    --exclude='__*.js' \ 
    --exclude='*BUILD' \ 
    --exclude='*.jar' \ 
    --exclude='*.DS_Store' \ 
    --exclude='__pycache__' \ 
    local_folder/ \ 
    server:server_folder/ 

所有的排除工作,除BUILD。

我想:

--exclude='*/BUILD' 
--exclude='*BUILD' 
--exclude='BUILD' 

以前沒有似乎已經檢測並刪除現有的構建文件。

關於如何排除這些文件的任何想法?

謝謝!

+0

嘗試不使用'=',查看這些示例http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/?utm_source=feedburner – nbari

+0

它適用於所有人其他人和它似乎接受:https://www.computerhope.com/unix/rsync.htm – nitobuendia

+0

ma你已經有遠程系統中的文件BUILD,這就是爲什麼在那裏,嘗試遠程刪除它,然後再次同步,應該工作。 – nbari

回答

1

該命令似乎正在工作,但可能是BUILD文件以前已存在。

如果你已經被轉移排除的文件或目錄,--delete-excluded將目的地側刪除它們,所以這應該工作:

rsync -e ssh --dry-run \ 
--recursive --archive --verbose \ 
--exclude='*.pyc' \ 
--exclude='*.scss' \ 
--exclude='__*.js' \ 
--exclude='*BUILD' \ 
--exclude='*.jar' \ 
--exclude='*.DS_Store' \ 
--exclude='__pycache__' \ 
--delete-excluded \ 
local_folder/ \ 
server:server_folder/ 

爲了補充檢查也是這個答案,解釋rsync的https://superuser.com/a/156702/284722刪除選項