Rsync 특정 모드이지만 동일한 경로에 있는 다른 파일은 제외됩니다.

Rsync 특정 모드이지만 동일한 경로에 있는 다른 파일은 제외됩니다.

그 안에는 많은 파일이 있습니다 /dapp/parsD/parsapp/object. rsync이 디렉토리에서 *와 일치하는 파일 만 원합니다.sql, *.pl그리고 *.쉿하지만 동일한 디렉터리에서 다음으로 끝나는 2개의 특정 패턴도 제외하고 싶습니다..쉿.

가능합니까? 나는 달리고 있다HP-UX11i소스와 대상에 대해. rsync버전은3.1.0.

다음 내용은 상상하기 더 쉬울 것입니다. 개발서버에서는 '엑스' 또는'엑스'는'으로 대체됩니다.' 또는'', 프로덕션 서버에서는 '' 또는''.

다음 파일이 포함됩니다:

/xapp/parsX/parsapp/object/*.sql
/xapp/parsX/parsapp/object/*.pl
/xapp/parsX/parsapp/object/*.sh

그러나 다음 파일은 제외하십시오.

 /xapp/parsX/parsapp/object/getbackdate*autosys.sh
 /xapp/parsX/parsapp/object/parssendevent*.sh

답변1

rsync포함/제외/필터 규칙은 사용하기 어려울 수 있지만 매우 유연합니다. 원하는 작업을 수행하는 한 가지 방법은 다음과 같습니다.

rsync --include-from=- /xapp/parsX/parsapp/object/ dest_dir <<EOF
- getbackdate*autosys.sh
- parssendevent*.sh
+ *.sql
+ *.pl
+ *.sh
- *
EOF

제조업체는 --include-from에서 rsync모드를 읽습니다 stdin. 이를 사용하지 않고 각 모드를 별도 --include또는 --exclude옵션으로 지정할 수 있습니다. 또한 규칙을 파일에 넣고 이름을 지정하거나 읽는 모든 디렉토리에서 파일을 -F찾는 데 사용할 수 있습니다 rsync..rsync-filter

또한 패턴의 순서도 중요합니다. 첫 번째 일치 패턴을 기반으로 파일을 포함/제외합니다. 또한 - *모든 것이 기본적으로 포함되므로 포함 규칙이 작동하도록 하려면 마지막 규칙이 필요합니다. 그러나 이는 명시적으로 포함되지 않은 모든 디렉터리를 제외하므로 재귀 전송의 경우 문제가 될 수 있습니다. 이 문제를 해결하는 한 가지 방법은 + **/모든 디렉터리를 포함하는 규칙을 포함하는 것입니다.

관련 정보