如何才能rsync鏡像* .php文件?這也給了我一大堆空樽,我不想要這些。rsync only * .php文件
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
[email protected]:/home/www/domain.com \
/Volumes/Servers/
如何才能rsync鏡像* .php文件?這也給了我一大堆空樽,我不想要這些。rsync only * .php文件
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
[email protected]:/home/www/domain.com \
/Volumes/Servers/
這裏的罪魁禍首是
--include '*/'
當包含一個通配符後面尾隨正斜槓你告訴rsync的轉讓以「/」(也就是結尾的所有文件,所有目錄)。
因此,
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--exclude '*' \
--include '*.php' \
[email protected]:/home/www/domain.com \
/Volumes/Servers/
如果您使用的是因爲你打算遞歸找到所有.php文件,你必須使用通配符**。 也就是說, --include '**/*.php'
另一種方式(http://www.commandlinefu.com/commands/view/1481/rsync-find)被發現前的目標文件,然後使用rsync,
find source -name "*.php" -print0 | rsync -av --files-from=- --from0 ./ ./destination/
rsync命令排除了所有文件,因此沒有任何內容被傳輸。我想我所做的就是使用我嘗試過的原始塊,並在完成後運行find命令刪除所有空文件夾。 – Poe
是的,全部的'exclude'應該在'include'之後。 –
沒有我的回答解決問題了嗎? –
訣竅是還將'--prune-empty-dirs \'添加到參數列表中 – Poe