다음 명령을 사용하여 원격 파일을 로컬 파일과 동기화해야 합니다.
rsync -schavzP --stats --files-from=./filelist.txt -e "ssh -p 22" [email protected]:/home/somewhere/ .
filelist.txt에는 여러 하위 폴더 파일 이름이 포함되어 있지만:
subfolder/746fbd52ec4441b88f62ead5beb8e57e
subfolder/test
이 명령은 다음과 같은 오류를 제공합니다.
rsync: link_stat "/home/somewhere/subfolder/746fbd52ec4441b88f62ead5beb8e57e" failed: No such file or directory
files-from 없이 rsync를 실행하고 명령줄에서 직접 원격 파일 이름을 지정하면 작동합니다.
누구든지 나를 도울 수 있다면 매우 감사하겠습니다. 감사해요.
답변1
늘 그렇듯, 진짜 이유는 내가 생각했던 것과는 달랐다.
"filelist.txt"는 파일 시작 부분에 BOM 코드가 숨겨진 코드로 포함된 UTF8 텍스트 파일입니다. "vi", "vim", "nano"도 표시할 수 없습니다.
이 숨겨진 코드를 모두 제거하면 bash 스크립트의 위 rsync 코드가 작동합니다.
혼란을 드려 죄송합니다.