scp가 예상대로 폴더 구조를 복사하지 않습니다.

scp가 예상대로 폴더 구조를 복사하지 않습니다.

나는 다음과 같은 경로를 가지고 있습니다 :

/one/two/three/four/five

나는 SCP를 원한다four/five/

이 위치의 다른 머신으로 재귀합니다.

/zero/

다음과 같이 만드세요:

/zero/four/five

내 현재 경로는 /one/two/three다음과 같습니다.

scp -r four/five user@bla:/zero/

그러나 대상 컴퓨터에서는 다음과 같습니다.

/zero/five/

바꾸다:

/zero/four/five/

(rsync가 더 간단하다면 사용해도 좋습니다.)

답변1

지역 기업은 창작을 좋아할 수도 mv four/five /zero/있고 그렇지 않을 수도 있으며, 그렇게 되기를 기대하는 사람은 거의 없습니다. 그래서 당신이 "기대하지 않음"이라고 부르는 것이 나에게는 꽤 기대되는 것처럼 들립니다.cp -r four/five /zero//zero/four/

tar제공된 경로를 저장합니다(참조:이 문제). 이 사실을 활용하십시오.

cd /one/two/three \
&& tar -cf - four/five | ssh user@bla '
   cd /zero && tar -xf -
'

답변2

scpmv동작은 여기와 동일합니다 cp. 실행할 수 있는 four것 외에 다른 디렉토리가 포함되어 있다고 가정five

ssh user@bla 'mkdir -p /zero/four'
(cd four && scp -r five user@bla:/zero/four/)

그냥 복사하세요 five.

  • mkdir -p디렉토리가 이미 존재하는 경우 오류 메시지 방지
  • (cd ... )cd나중에 종료 할 필요가 없도록 이 줄을 서브셸에서 실행하세요.four

관련 정보