cp 대 mv: 어떤 작업이 더 효율적인가요?

cp 대 mv: 어떤 작업이 더 효율적인가요?

나는 한 디렉토리 트리에서 다른 디렉토리 트리로 상당히 많은 양의 데이터(20GB 이상)를 이동하고 있습니다. 일반적으로 동일한 파일 시스템에 있지만 때로는 다른 파일 시스템에 있는 경우도 있습니다. cp혹시라도 원본 데이터를 유지하기 위해 이렇게 했습니다 . 복사가 완료되면 데이터가 올바르게 복사되었는지 확인한 후 원본 데이터를 삭제합니다. mv나중에 원시 데이터를 정리하기에는 너무 게으른 경우 가끔 이 작업을 수행합니다. 하지만 순전히 기술적인 관점에서 어떤 작업이 더 효율적인지 궁금합니다. 왜?

답변1

기술적으로는 원자적이지 않으며 mv소스와 대상이 다른 파일 시스템에 있는 경우 실제로 cp는 + 입니다 unlink(). 따라서 먼저 mv파일이 복사된 다음 unlink()디렉터리 항목 목록에서 파일을 제거하기 위해 호출됩니다.

따라서 이 경우 AFAIU를 ( ) 사용 cp하거나 직접 사용하는 것은 전적으로 개인 취향입니다.rmunlink()mv

mv동일한 파일 시스템에서 -ing을 사용하는 동안 오버헤드를 줄이기 위해 mv동일한 파일 시스템에서 원자성(호출)으로 사용해야 합니다 rename().

FS 종속성 동작을 지적한 @muru 및 @psusi에게 감사드립니다.

관련 정보