나는 스크립트와 다음 코드를 가지고 있습니다 -
cat file_list.txt | while read line
do
rsync --dry-run -avzPs '$line' '123.456.122.111:$line'
done
file_list.txt는 다음과 같습니다 -
/some/random/directory/file_name.txt
/some/other/directory/a file name.html
.....
$line
내가 겪고 있는 문제는 작동 방식으로 인해 rsync 명령이 매개 변수와 함께 작동하지 않는다는 것입니다 --protect-args
. 일부 파일 이름에 공백이 있기 때문에 명령에 이 옵션을 포함해야 합니다.
그러나 텍스트 문서에 전달하려는 모든 경로와 특정 파일이 포함되어 있기 때문에 와일드카드를 사용하여 모든 것을 전달할 수는 없습니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
--files-from=
파일을 지정하는 데 사용하지 않는 이유는 무엇입니까 ?
rsync -avzP --files-from=file_list.txt 123.456.122.111:
--no-relative
전체 경로를 요구하지 않고 모든 파일을 동일한 디렉터리에 두려는 경우에도 이를 추가할 수 있습니다.
답변2
변수 이름 주위에는 작은따옴표를 사용할 수 없습니다. 작은따옴표로 묶인 문자열은 평가되지 않습니다.
스크립트는 다음과 같아야 합니다.
cat file_list.txt | while read line
do
rsync --dry-run -avzPs "$line" "123.456.122.111:$line"
done