rsync는 명령에 추가 디렉터리를 추가합니다.

rsync는 명령에 추가 디렉터리를 추가합니다.

rsync 명령을 스크립팅 중이며 현재 비슷한 작업을 수행하려고 합니다...

rsync -av -e ssh $DATASTORE/usr/local/somepath $DESTDIR/usr/local/someotherpath/

$DATASTORE를 에코하면 다음과 같이 표시됩니다.

echo $DATASTORE
[email protected]

명령을 실행하면 다음과 같은 결과가 나타납니다.

/vagrant/[email protected]/usr/local/somepath no suck file or diectory

왜 거기에 /vagrant를 추가했는지(/vagrant는 내가 있는 현재 디렉토리입니다), 그리고 그 출처는 어디인지 잘 모르겠습니다. 이 작업을 제대로 수행할 수는 없을 것 같지만 이것이 수행하는 작업과 이를 우회하는 방법(안전한 경우)을 알고 싶습니다.

답변1

:다른 사람들이 지적했듯이 경로 지정과 호스트 지정을 구분하려면 콜론( )을 사용해야 합니다 .

rsync -av -e ssh "$DATASTORE":/usr/local/somepath "$DESTDIR"/usr/local/someotherpath/

또한 이것이 somepath원하는 동작은 아니지만 원하는 경우에는 "$DESTDIR"/usr/local/someotherpath."$DESTDIR"/usr/local/someotherpath/somepath콘텐츠somepath대상 디렉터리 에서 someotherpath소스 경로 뒤에 슬래시를 추가합니다.

rsync -av -e ssh "$DATASTORE":/usr/local/somepath/ "$DESTDIR"/usr/local/someotherpath/

답변2

교체를 시도하다

$DATASTORE

통과

${DATASTORE}:

답변3

당신이 하는 모든 일은 괜찮습니다. 여기에는 콜론만 빠졌습니다. 이 시도:

rsync -av -e ssh $DATASTORE:/usr/local/somepath $DESTDIR/usr/local/someotherpath/

관련 정보