rsync 하위 디렉터리 및 콘텐츠만

rsync 하위 디렉터리 및 콘텐츠만

많은 파일과 하위 디렉터리가 있는 디렉터리가 있습니다. 아래를 참조하세요:

baseDir
  bad1
  bad2
  subDir1
    file1
  subDir2
    file1

rsync bad1 및 bad2 없이 baseDir의 내용을 rsync하고 싶습니다.

~로 이어지다

targetDir
  SubDir1
    file1
  SubDir2
    file1 

두 개의 명령이 필요한지는 상관하지 않습니다. 그런데 어떻게 해야 합니까?

답변1

원하는 디렉터리와 해당 상위 디렉터리를 포함하고 다른 모든 디렉터리를 제외하거나 잘못된 디렉터리를 제외할 수 있습니다. 순서가 중요하다는 점에 유의하세요. rsync는 일치하는 패턴의 첫 번째 파일로 무엇을 할지 결정합니다(예를 들어 그 이후의 파일은 --exclude=*사실상 무시됩니다). 또한 디렉토리를 제외하면 해당 디렉토리가 복사되는 것을 방지할 뿐만 아니라 탐색도 방지되므로 그 아래에 있는 모든 항목이 효과적으로 제외됩니다. 바라보다이 rsync 필터 입문서더 많은 정보를 알고 싶습니다.

rsync --include='/' --include='/subDir***' --exclude='*' baseDir/ targetDir/
rsync --exclude='/bad*' baseDir/ targetDir/

답변2

--exclude-from옵션을 사용하여 rsync동기화에 포함하지 않을 항목을 정의 할 수 있습니다.

예를 들어:

 #cat exclude.txt 
  baseDir/bad1
  baseDir/bad2

 #rsync --exclude-from=exclude.txt -avr source_dir_path destination_dir_path

답변3

rsync옵션에 대한 인수 로 와일드카드를 사용하므로 --exclude다음을 수행할 수 있습니다.

$ pwd
$ /some/dir

$ rsync -avz baseDir/ --exclude 'bad[1,2]' targetDir/.

예를 들어:

$ rsync -avz baseDir/ --exclude 'bad[1,2]' targetDir/.
sending incremental file list
./
subDir1/
subDir1/file1
subDir2/
subDir2/file1

sent 185 bytes  received 61 bytes  492.00 bytes/sec
total size is 0  speedup is 0.00

관련 정보