에 디스크를 마운트했습니다 /data
. 현재는 비어 있습니다.
레벨 4에 있어야 하는 파일 보다 더 많은 rsync
작업을 수행 해야 합니다. 즉 , , 및 이 존재하지 않는 경우입니다.mkdir -p
mkdir
/data/dir_1/dir_2/dir_3/filename
dir_1
dir_2
dir_3
필요한 하위 디렉터리를 수동으로 생성하면 다음 명령을 사용하여 rsync를 수행할 수 있습니다.
rsync -avz source_diretory/ /data/dir_1/dir_2/dir_3
그러나 하위 디렉터리를 생성하지 않으면 이 명령에서 오류가 발생합니다.
mkdir: cannot create directory ‘/data/dir_1/dir_2/dir_3/’: No such file or directory
rsync의 매뉴얼 페이지를 읽고 인터넷 검색을 시도했지만 사용해 보았지만 -r
-R
제대로 작동하지 못했습니다.
rsync
다음과 같은 작업을 수행 할 수 있나요 mkdir -p
? 아니면 해당 범위를 벗어나나요?
답변1
rsync
명령은 디렉토리 트리를 생성하지 않으므로 다음을 수행하여 이를 수행할 수 있습니다.
mkdir -p /data/dir_1/dir_2/dir_3
rsync
명령 또는 사용 전--rsync-경로옵션:
--rsync-path=PROGRAM rsync를 시작하기 위해 원격 시스템에서 실행할 프로그램을 지정하려면 이를 사용합니다.
귀하의 명령은 다음과 같아야 합니다:
rsync -avz source_diretory/ --rsync-path="mkdir -p /data/dir_1/dir_2/dir_3 && rsync" /data/dir_1/dir_2/dir_3
여기에 유용한링크.
답변2
Linux에서 rsync 대상 경로를 생성하는 더 짧은 방법은 '$_' 특수 변수를 사용하는 것입니다. (OSX에서도 마찬가지라고 생각하지만 확인할 수는 없습니다.)
'$_'는 실행된 이전 명령의 마지막 인수 값을 보유합니다. 따라서 질문에 다음과 같이 답할 수 있습니다.
mkdir -p /data/dir_1/dir_2/dir_3 && rsync -avz source_directory/ $_