Linux
當只掃描 *.php 文件時,rsync 排除目錄不起作用
我試圖從 /home/ 的任何目錄中同步所有 .PHP 和 .HTML 文件。但是在 /home/site2/public_html/cache_old/ 中有一些我不想包含在同步中的 .html 文件(因此我想排除該目錄及其任何子目錄)
這是我能想到的最好的 rsync 命令(經過大量測試和失敗):
rsync -avv /home/ /ssd/rsyncPHPsFORmtree/ --include '*/' --include '*.html' --include '*.php' --exclude /site2/public_html/cache_old/* --exclude '*'
我確信我的 rsync 命令沒有根據 rsync 執行時的輸出正確格式化:
[sender] showing file site2/public_html/cache_old/total_pages/s/e/a/r/c/page99.html because of pattern *.html [sender] showing file site2/public_html/cache_old/total_pages/s/e/a/r/c/Page4.html because of pattern *.html [sender] showing file site2/public_html/cache_old/total_pages/s/e/a/r/c/searchHe107.html because of pattern *.html [sender] showing file site2/public_html/cache_old/total_pages/s/e/a/r/c/page18.html because of pattern *.html
謝謝
rsync -avv /home/ /ssd/rsyncPHPsFORmtree/ --exclude '/site2/public_html/cache_old/' --include '*.html' --include '*.php' --include '*/' --exclude '*'
這應該這樣做。
申報者的順序很重要。第一個匹配規則適用。因此,您首先排除文件夾,然後包含您想要的文件,然後包含以前未排除的目錄,然後排除其他所有內容。