내 tar 파일이 백업 디렉터리보다 큰 이유는 무엇입니까?

내 tar 파일이 백업 디렉터리보다 큰 이유는 무엇입니까?

이 문제나에게 도움이 되지 않았습니다(동일한 제목을 가지고 있음에도 불구하고). 그래서 중복된 질문임에도 불구하고 이 글을 게시했습니다.

내가 아는 한, 총계에는 du -k모든 하위 디렉터리가 포함되어 있으며 77MB의 데이터가 있음을 보여줍니다.

/raid/fpuData/oldOutput>du -ks
77063332        .
/raid/fpuData/oldOutput>tar -cvzf ../oldOutput.tar.zip *

백업이 계속 실행 중이지만 파일이 이미 77MB보다 훨씬 큽니다.

/raid/fpuData>ls oldOutput.tar.zip
-rw-r--r-- 1 nobody nobody 14470610944 Jul  1 22:18 oldOutput.tar.zip

제가 백업하는 파일은 모두 쉼표로 구분된 거대한 스프레드시트처럼 숫자로 가득 찬 거대한 텍스트 파일입니다. 이 같은

0.3454915028125262743685653,0.5590169943749474512628694,...
0.221761776923297210251107,0.3588180924674668759166707,...
-0.06101864995889930837202897,-0.09873024958113109372792593,...
-0.3001958820500086333460388,-0.4857271404396689140625654,...
...

tar파일이 디렉토리보다 큰 이유는 무엇입니까 ? options 와 함께 데이터를 사용하고 있으므로 압축해야 합니다 z. 그렇다면 벨을 울리는 이유는 무엇입니까 tar?

답변1

압축된 tar 파일이 내용보다 작습니다.

ls기본적으로 파일 크기는 바이트 단위로 인쇄됩니다.
du -k파일 크기를 킬로바이트 단위로 인쇄합니다.

0610944B ≒ 14131456KB < 77063332KB

ls인쇄 파일 크기를 킬로바이트 단위로 얻으려면 이 -k플래그를 사용하십시오.

답변2

기본 바이너리 데이터(예: *.gz, *.zip)를 압축하면 원래 집계보다 훨씬 더 큰 출력 파일이 생성될 수 있다는 점에 유의하세요. 그래서 당신이 시도하고 있는 tar의 -z 스위치가 누락되었을 것입니다.

답변3

텍스트 파일은 "txt" 확장자를 갖고 있기 때문에 더 잘 압축되지 않습니다. 추가 "공백"과 반복되는 문자 사용이 많은 경향이 있기 때문에 일반적으로 텍스트 파일은 더 잘 압축됩니다.

귀하의 CSV 파일에는 정리할 "공백"이 거의 없으며 실제로 바이너리 또는 그래픽 이미지 파일을 에뮬레이트한다고 가정합니다.

답변4

tar 옵션을 사용하지 않고 희소 파일을 백업했을 수도 있습니다 --sparse.

완료되면 아카이브를 추출하고 소스 디렉토리를 추출된 디렉토리와 비교하면 쉽게 찾을 수 있습니다.

관련 정보