SSH 및 셸을 통해 기존 파일을 덮어써 콘텐츠 관리 설치를 업데이트하려면 어떻게 해야 합니까?

SSH 및 셸을 통해 기존 파일을 덮어써 콘텐츠 관리 설치를 업데이트하려면 어떻게 해야 합니까?

CentOS 5 및 Apache 2.2를 실행하는 웹 서버에 cms(modx)를 설치했습니다. 이제 새 버전이 나왔으니 업데이트하고 싶습니다. 설명모드x위키기존 파일을 덮어쓰는 것이 좋습니다.

.zip 파일을 다운로드하여 추출했습니다. 기존 설치는 에 있습니다 html/cms/. 새 파일은 에 있습니다 html/modx-2.1.1-pl/. SSH 연결을 통해 서버에 액세스합니다.

html/cms/기존 파일을 덮어쓰고 설치에 포함되지 않은 파일을 유지하면서 새 파일을 이동하는 방법은 무엇입니까 ? 나는 시도했습니다 mv- 명령을 내리고 그것에 대해 읽었 rsync거나 cp그것이 적합할 수도 있습니다.

시도했을 때 mv -ivt cms/ modx-2.1.1-pl/*성공하지 못했습니다 . 의 하위 디렉토리는 modx-2.1.1-pl/이동되지 않았습니다.

옳은 일은 무엇입니까?

답변1

만일의 경우를 대비해 먼저 기존 파일을 백업하세요.

tar czf modx-old.tar.gz html/cms

그런 다음 cp새 파일을 제자리에 복사하는 데 사용합니다. mv여기서는 기존 디렉토리를 반복하는 대신 기존 디렉토리를 건너뛰기 때문에 사용할 수 없습니다 . 그러나 cp전체 복사본이 생성되어 대상에 있는 기존 파일을 덮어씁니다.

cd html/modx-2.1.1-pl/ && cp -Rpf . ../html/cms/

GNU를 사용하면 복사하는 대신 하드 링크를 생성하여 cp추가할 수 있습니다 .-l

마지막으로 디렉토리를 삭제할 수 있습니다 modx-2.1.1-pl.

답변2

매개변수의 순서가 잘못되었습니다. 이 명령의 사용법 mv은 입니다 mv source dest. modx-2.1.1-pl 아래의 모든 항목을 cms로 이동하려면 다음을 수행해야 합니다 mv modx-2.1.1-pl/* cms/. 실제로 cp대신 사용하는 것이 더 나을 수도 있습니다 mv. 이 경우 구문은 다음과 같습니다 cp -r modx-2.1.10pl/* cms/.

관련 정보