![내 tar 파일이 백업 디렉터리보다 큰 이유는 무엇입니까?](https://linux55.com/image/33625/%EB%82%B4%20tar%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%B0%B1%EC%97%85%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%B3%B4%EB%8B%A4%20%ED%81%B0%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 문제나에게 도움이 되지 않았습니다(동일한 제목을 가지고 있음에도 불구하고). 그래서 중복된 질문임에도 불구하고 이 글을 게시했습니다.
내가 아는 한, 총계에는 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
파일 크기를 킬로바이트 단위로 인쇄합니다.
ls
인쇄 파일 크기를 킬로바이트 단위로 얻으려면 이 -k
플래그를 사용하십시오.
답변2
기본 바이너리 데이터(예: *.gz, *.zip)를 압축하면 원래 집계보다 훨씬 더 큰 출력 파일이 생성될 수 있다는 점에 유의하세요. 그래서 당신이 시도하고 있는 tar의 -z 스위치가 누락되었을 것입니다.
답변3
텍스트 파일은 "txt" 확장자를 갖고 있기 때문에 더 잘 압축되지 않습니다. 추가 "공백"과 반복되는 문자 사용이 많은 경향이 있기 때문에 일반적으로 텍스트 파일은 더 잘 압축됩니다.
귀하의 CSV 파일에는 정리할 "공백"이 거의 없으며 실제로 바이너리 또는 그래픽 이미지 파일을 에뮬레이트한다고 가정합니다.
답변4
tar 옵션을 사용하지 않고 희소 파일을 백업했을 수도 있습니다 --sparse
.
완료되면 아카이브를 추출하고 소스 디렉토리를 추출된 디렉토리와 비교하면 쉽게 찾을 수 있습니다.