SSH를 통해 rsync를 사용하여 특정 파일을 복사 할 수 없습니다.


2

모든 PHP 파일을 다른 컴퓨터에 동기화하려고합니다. ssh 통하다 rsync. 그러나 파일을 절대 복사하지 않습니다. Mac OSX Mountain Lion (10.8.4)에 있습니다.

다음은 내가 시도한 것입니다.

rsync --rsh=ssh --verbose --remove-source-files --recursive --exclude=* --include='*.php' $HOME/ pi@raspberrypi:~

building file list ... done
sent 36 bytes  received 20 bytes  112.00 bytes/sec
total size is 0  speedup is 0.00

또는

rsync --verbose --remove-source-files -e "ssh" $HOME/*.php pi@raspberrypi:~
rsync: link_stat "/Users/simonjackson/*.php" failed: No such file or directory (2)

sent 21 bytes  received 20 bytes  82.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]

이것에 대한 어떤 생각?

답변:


1

올바른 구문은 다음과 같습니다.

rsync --include="*.php" --filter="-! */"  출처   목적지 

정상적인 문제 exclude="*" 모든 파일과 폴더를 다시 제외시킬 수 있으므로 아무 것도 포함 할 수 없으므로 디렉토리를 포함하여 모든 항목이 제외됩니다.

설명하기 --filter 여기서 규칙을 정할 때, 맨 페이지를보십시오 :

에이 ! 패턴이 일치하지 않으면 포함 / 제외가 적용되도록 지정합니다. 예를 들어, "-! */" 모든 비 - 디렉토리를 제외합니다.

이것은 단순히 우리가 여기에서 원하는 것입니다. 왜냐하면 우리는 다른 모든 파일을 제외하기를 원하기 때문입니다.

또한 --exclude=* 일부 쉘에서만 작동하며 Bash는 예를 들어 작동합니다. Zsh에서는 확장하려고 시도 할 것입니다. * 명령을 실행하기 전에 그 뜻은 rsync 잘못된 include / exclude 목록을 가져옵니다. 그러므로 안전을 위해 패턴이 항상 조기에 확장되는 것을 막기 위해 패턴을 인용하십시오.

자세한 내용은 다음을 참조하십시오. rsync 필터 규칙 트릭


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.