![Linux에서 소스 파일을 삭제하는 동안 파일을 병합하는 방법](https://linux55.com/image/148082/Linux%EC%97%90%EC%84%9C%20%EC%86%8C%EC%8A%A4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%8F%99%EC%95%88%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B3%91%ED%95%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
병합해야 하는 2개의 대용량 파일(각각 ~27GB)이 있습니다. 원래는 완전한 ZIP 파일이었으나 분리했습니다. cat 명령의 문제점은 소스 파일의 내용을 포함하는 새 파일을 생성한다는 것인데, 저는 그렇게 하고 싶지 않습니다(디스크 공간이 많지 않기 때문에).
파일 병합과 소스 파일 삭제를 동시에 지원하는 cat에 대한 대안이 있습니까?
답변1
(요약논의하다)
현재 디렉터리를 보유하는 파티션에는 28.3GB가 남아 있고 아카이브의 두 번째 부분은 27.8GB입니다. 이는 아카이브의 두 번째 부분을 아카이브의 첫 번째 부분에 추가할 수 있어야 함을 의미합니다.
part1
두 부분을 sum 이라고 가정합니다 part2
.
cat part2 >>part1
그러면 part1
아카이브 파일이 완료됩니다( part2
삭제 가능).
유일한 문제는 일반적으로 Unix 파일 시스템에 일반 사용자가 채울 수 없는 예약된 버퍼 공간(보통 전체 파티션 크기의 몇 퍼센트)이 있다는 것입니다. 여기의 크기 제한은 매우 엄격하기 때문에 귀하가 해당 제한에 해당하는지 완전히 확신할 수 없습니다.
해결책은 루트(예약된 공간을 채우는 데 제한이 없음)로 실행하거나 필요하지 않은 일부 대용량 파일을 지우는 것입니다.
루트로 실행하려면 루트 셸을 시작하고 위와 같이 sudo -s
실행 cat
하거나 다음을 실행합니다.
sudo tee -a part1 <part2 >/dev/null