![tar 및 bzip2로 압축한 후 특정 크기의 파일이나 디렉터리가 차지할 공간을 추정할 수 있는 방법이 있습니까?](https://rvso.com/image/1607088/tar%20%EB%B0%8F%20bzip2%EB%A1%9C%20%EC%95%95%EC%B6%95%ED%95%9C%20%ED%9B%84%20%ED%8A%B9%EC%A0%95%20%ED%81%AC%EA%B8%B0%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%82%98%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EA%B0%80%20%EC%B0%A8%EC%A7%80%ED%95%A0%20%EA%B3%B5%EA%B0%84%EC%9D%84%20%EC%B6%94%EC%A0%95%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
distro 전환이 임박하여 홈 디렉토리를 백업하고 싶습니다. 그러나 내 홈 디렉토리는 29GB입니다. 로 압축한 후 얼마나 많은 공간을 차지하는지 알고 싶습니다 tar cvjf home.tar /home
. 압축 후 크기를 결정하는 데 사용할 수 있는 방법이 있습니까?
답변1
이 도구는 tar
( 사용자가 사용했기 bzip2
때문에 암시적으로 관련되어 있음 j
) wc
(바이트를 계산하는 표준(POSIX) 도구임)으로 파이프됩니다. 다음 명령은 크기를 바이트 단위로 인쇄합니다.
tar cj /home | wc -c
이 명령은 실제로 "최종 아카이브를 작성하지 않고 압축 프로그램의 모든 작업을 수행하므로 시간 낭비가 됩니다"(여기서 또 다른 답변을 인용합니다)를 수행합니다. 하지만 정말로 알고 싶다면 이것이 유일하고 확고한 방법입니다.
다음과 같이 전반적인 접근 방식을 개선할 수 있습니다.
tar cj /home | tee home.tbz2 | wc -c
- 운이 좋고 공간이
home.tbz2
충분하다면 오류가 발생하지 않으며 파일 크기는 보고할tee
크기와 동일하게 됩니다 .wc -c
- 그렇지 않으면
tee
을 보고no space left
하지만 계속해서 stdout에 씁니다.wc -c
파일의 크기가 얼마나 되는지 알려줄 것입니다. 실제(불완전한) 파일은 더 작으므로 나중에 삭제해야 합니다.
tar
와 함께 사용하는 동안 메시지를 v
놓칠 수 있습니다 no space left
. 그래도 에서 얻은 출력을 wc -c
실제 크기와 비교하면 무슨 일이 일어났는지 알 수 있습니다 home.tbz2
. Bash에서는 tee
with 의 종료 상태를 검색할 수 있습니다 ${PIPESTATUS[1]}
.
답변2
불행하게도. 압축된 아카이브의 크기를 확인하는 유일한 방법은 압축된 아카이브를 생성하는 것입니다. 최종 아카이브를 작성하지 않고 압축 프로그램의 모든 작업을 수행하는 도구는 시간 낭비이므로 이를 수행할 수 있는 도구는 없습니다.
아마도 데이터를 관리 가능한 덩어리로 나누고 여러 개의 아카이브를 생성하는 것을 고려해야 할 것입니다. 이렇게 하면 29GB를 아카이브하는 데 걸리는 많은 시간을 더 작은 조각으로 나눌 수 있습니다.
답변3
실제로 압축하지 않고 데이터가 어느 크기로 압축될지 확실히 아는 것은 불가능합니다. 당신이 할 수 있는 일은 당신의 홈 디렉토리에 있는 콘텐츠를 기반으로 지식을 바탕으로 추측하는 것입니다. 이 작업을 자동으로 수행하는 도구는 없지만 어려운 과정은 아닙니다.
많은 최신 파일 형식은 이미 압축되어 있습니다. 즉, 압축을 다시 실행해도 이득이 거의 또는 전혀(또는 부정적인) 얻을 수 없습니다. 이러한 유형의 데이터는 압축을 건너뛰고 그대로 복사하거나 보관하는 것이 좋습니다. 이에 대한 예로는 압축된 비디오(mp4, webm, mov 등), 압축된 이미지(jpeg, png 등), 기존 아카이브(zip, rar, gz, bz2 등) 등이 있습니다.
텍스트 파일은 일반적으로 상당히 잘 압축되며, 특히 반복되는 데이터(예: 로그 파일)가 많은 경우 더욱 그렇습니다. 파일의 하위 집합을 샘플링하여 압축 방법을 확인하고 이를 추측으로 사용하거나 대략적인 추정치로 50% 정도를 사용할 수 있습니다.
마지막으로, 데이터의 어느 부분이 각 유형으로 구성되어 있는지 확인하고 여기에 예상 비율을 곱하여 최종 크기를 추정해 보세요. 예를 들어, 데이터 중 20GB가 압축 데이터이고 9GB가 텍스트 파일인 경우 최종 압축 데이터 크기는 21GB에서 25GB 사이일 것입니다.