rsync가 --files-from 옵션을 사용하지 않습니까?


13

나는 달리려고 노력 rsync -a --files-from=~/.rsync_file_list ~/destination하고 있으며 나에게 말한다 : rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. 아무도 내가 뭘 잘못하고 있는지 깨달을 수 있습니까?

이 파일 ~/.rsync_file_list에는 ~/개행 문자로 구분 된 접두사가 붙은 파일 이름 목록 만 포함 됩니다 (물론 동일한 줄에 동일한 결과로 나열하려고 시도했지만).

내가 실행 rsync -a ~/file ~/file2 ~/file3 ~/destination하면 제대로 작동합니다. --files-from옵션 에 대해 무엇을 놓치고 있습니까?


시도sed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Andy

@ 앤디 : 아아, 같은 결과.
Wolf

답변:


20

좋아, 나는 문제를 발견했다.

  1. 파일 이름을 포함하는 파일은 파일 이름 포함 해야 합니다. 상대 경로 또는 다른 경로가 없습니다.
  2. --files-from=FILE지정한 후 rsync에는 나열된 파일을 찾을 수있는 소스 디렉토리가 필요합니다.

따라서 명령은이어야합니다 rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list 읽어야합니다:

file 1
file 2
file 3

3
수정 : 지정된 파일의 파일 이름은 소스 디렉토리와 관련이 있지만 그 위에있을 수는 없습니다 (no ../). 선행 슬래시가 무시되므로 절대 경로가 작동하지 않습니다.
Wolf

나는 당신이 당신의 자신의 답변을 편집하고 당신이 나중에 답변 자체에서 찾은 매우 좋은 추가 및 관련 정보를 추가 할 수 있다고 생각합니다.
Vinícius M

0

rsync가 "~"기호를 인식하고 번역 할만큼 똑똑하지 않으면 "~"를 사용하면 "files-from"파일에서 작동하지 않을 수 있습니다.

쉘의 명령 행에서 명령의 일부로 "~"를 지정하면 , 프로그램에 인수를 전달 하기 전에 "~"를 홈 디렉토리로 변환 하는 것은 자체입니다 . 입력 그래서하더라도 , 무엇을 "보고"를 실제로 해결 경로, 또는 .rsync -a ~/filersyncrsync -a /home/foo/file

자세한 내용은 Bash Tilde Expansion 을 참조하십시오.

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