
나는 단지 디렉토리를 옮기고 싶다. mv, cp 및 rsync를 차례로 살펴보았는데, 각 도구에는 복사한 후 소스에서 디렉터리를 제거하는 옵션이 없는 것 같았기 때문입니다. 예를 들어, src와 dst가 서로 다른 장치에 있는 경우 mv에는 dirs가 아닌 파일이 필요합니다.
"장치 간 이동 실패: src에서 dst로; 대상을 제거할 수 없습니다: 디렉터리입니다."
아마도 이 작업을 수행하는 가장 간단한 방법은 추가 삭제 cmd를 사용하는 것입니다. 하지만 저는 이를 사용하지 않는 것을 선호합니다. 그렇게 하면 데이터 손실 위험이 증가하기 때문입니다.
답변1
밥이 말했듯이. 불행하게도 나는 (아직) 코멘트를 할 수 없기 때문에 여기에 조정 사항을 넣어야 합니다. Bobs 명령을 약간 수정한 버전을 사용하는 것이 좋습니다.
cp -rp source-dir target-dir && rm -r source-dir;
이중 앰퍼샌드는 첫 번째 명령이 완료된 경우에만 두 번째 명령이 실행되도록 보장합니다.성공적으로-- 어떤 이유로(예: 대상 볼륨에 공간이 충분하지 않음) 복사가 실패하면 끔찍한 일이 될 것입니다. 그럼에도 불구하고 소스는 삭제됩니다...
답변2
실제로,mv디렉토리를 "이동"할 수 있습니다. 하지만 장치나 파일 시스템 간에 이동할 수는 없습니다. 파일 포인터를 재정의하는 것뿐이기 때문에 매우 빠르게 실행됩니다. 콘텐츠 자체는 복사되지 않습니다.
따라서 두 가지 명령(복사 후 제거)이 필요합니다. 내 Solaris 시스템에서는 다음 두 명령을 사용하여 디렉토리를 이동합니다.
cp -rp source-dir target-dir; rm -r source-dir;
사용자 환경에 맞는 올바른 구문을 사용하는지 확인하고 존재할 수 있는 기호 링크를 처리하려면 매뉴얼 페이지를 참조하십시오.