답변:
rsync
잘 작동하며 대부분의 경우 전송 프로토콜로 SSH를 자동으로 사용합니다. 파일을 비교하고 변경된 파일 만 업로드합니다. 그러나 제외 목록 을 사용하여 트리에서 동기화되지 않아야하는 파일을 지정할 수도 있습니다 .
변경된 파일 만 복사하고 ssh에서도 작동하는 rsync 를 시도 할 수 있습니다.
사용하는 rsync --exclude
것이 더 확실한 선택이지만, 실제로 몇 개의 파일이나 폴더를 보내고 제외 할 특정 항목을 원한다면을 사용하여 쉘 글 로빙을 사용할 수 있습니다 scp
. 먼저 쉘에 올바른 글 로빙 옵션이 설정되어 있는지 확인하십시오. bash 실행 shopt -s extglob
및 zsh 사용 setopt ksh_glob
. 그런 다음과 같은 것 :
scp /path/to/folder/!(tiny_mce|other_folder|*.bak) user@host:target_path
... 주어진 패턴과 일치하는 것을 제외하고 소스 폴더의 모든 것을 복사합니다. 분명히 그 부분으로 창의력을 발휘할 수 있습니다.
rsync
좋은 해결책이지만 대안을 찾고 있다면 :
"test"디렉토리에 "foo, bar, baz"디렉토리가 있다고 가정 해 봅시다. 이 디렉토리에는 여러 가지 파일 형식이 있습니다.
test
|____bar
| |____1.jpg
| |____1.png
| |____1.txt
| |____2.jpg
| |____2.png
| |____2.txt
|____baz
| |____1.avi
| |____2.avi
| |____3.png
|____foo
| |____test.blah
|____test.txt
PNG를 제외한 모든 것을 복사하고 싶습니다
scp $(find /location/of/test -type f ! -name "*.png") # -> Note the logical NOT!!
이 예제에서 명령은 모든 파일을 동일한 대상 디렉토리에 넣습니다. 이것은 원하는 동작이 아닐 수 있습니다.
\[*?
)가 포함되지 않은 경우에만 작동합니다 .
방금 언젠가 재 동기화 를 선호하는 방법을 쓰기를 마쳤 습니다.
*.bak
. 구성 파일의 샘플