zip을 현재 위치(라고 부르겠습니다)로 추출했으며 /httpdocs
zip 내부의 모든 내용은 이라고 부르는 디렉토리에 있습니다 myfiles
.
그 안에는 /httpdocs
디렉토리와 정확히 동일한 경로에 존재하는 수천 개의 디렉토리와 파일이 있습니다 myfiles
.
myfiles
/httpdocs
이미 존재하는 디렉터리/파일을 재귀적으로 바꾸는 동안 디렉터리의 내용을 이동해야 합니다 .
myfiles
디렉토리에서 시도하면 다음과 같습니다 .
mv * ../
존재하는 모든 파일을 덮어쓸지 묻는 메시지가 나타납니다... y/n!
다음에서 얻으려고 하면 /httpdocs
:
mv myfiles/* .
존재하는 모든 파일을 덮어쓸지 묻는 메시지가 나타납니다... y/n!
-f
힘 연산자를 적용하려고 하면 이동할 수 없다는 결과가 반환됩니다 Directory not empty
.
이제 내가 읽은 바에 따르면 내가 하려는 작업이 mv
해당 명령으로 달성 가능한 것 같지 않습니다. 이것이 아마도 내가 이 명령으로 아무데도 얻을 수 없는 이유일 것입니다.
나는 cp
및 rsync
다른 많은 명령을 알고 있지만 실제로 디렉토리의 내용을 다른 위치로 이동하고 존재하는 경우 반복적으로 덮어쓰는 데 어떤 명령이 가장 적합한지 잘 모르겠습니다.
로컬 클라이언트에서 FTP를 통해 업로드하고 /httpdocs
재정의 대화 상자에서 "모두 동의"를 선택하면 이 작업을 쉽게 수행할 수 있다는 것을 알고 있지만 시간이 오래 걸리므로 항상 실용적이지는 않습니다. 비슷한 효과가 발생하기를 추구하는 것뿐입니다. 명령줄을 통해.
답변1
아래에 논의된 바와 같이이 문제, 이 mv
명령은 기존 파일을 덮어써 디렉터리를 "병합"하는 방법을 직접 제공하지 않습니다.
cp
명령은 rm
동등한 대안으로 함께 사용할 수 있습니다. 이 경우 명령은 다음과 같습니다.
cd /path/to/httpdocs
cp -r myfiles/* .
rm -r myfiles/
참고: 이 cp
명령은 기본적으로 기존 파일을 덮어씁니다. OP에는 프로세스를 방해하는 별칭이 있습니다. 이 cp
명령 의 별칭은 cp -i
재정의할 때마다 대화형 확인이 필요하다는 것입니다. unalias cp
먼저 실행하거나 구문을 사용하여 이를 재정의할 수 있습니다 \cp -r ..
.