![*.php 파일만 스캔하는 동안 rsync 제외 디렉터리가 작동하지 않습니다.](https://linux55.com/image/80165/*.php%20%ED%8C%8C%EC%9D%BC%EB%A7%8C%20%EC%8A%A4%EC%BA%94%ED%95%98%EB%8A%94%20%EB%8F%99%EC%95%88%20rsync%20%EC%A0%9C%EC%99%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
/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
감사해요
답변1
rsync -avv /home/ /ssd/rsyncPHPsFORmtree/ --exclude '/site2/public_html/cache_old/' --include '*.html' --include '*.php' --include '*/' --exclude '*'
이것은 트릭을 수행해야합니다.
파일러의 순서가 중요합니다. 첫 번째 일치 규칙이 적용됩니다. 따라서 먼저 폴더를 제외하고 필요한 파일을 포함시킨 다음 이전에 제외되지 않은 디렉터리를 포함하고 다른 모든 항목을 제외합니다.