![내 tar 파일이 내용보다 큰 이유는 무엇입니까?](https://linux55.com/image/32626/%EB%82%B4%20tar%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%82%B4%EC%9A%A9%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)
두 개의 파일 xaa, xab(split 명령을 사용한 결과)에서 tar 파일을 다시 만들었습니다. tar 파일의 크기는 내가 예상한 크기이지만, 압축을 풀면 tar 파일 크기의 일부에 불과한 폴더가 생성됩니다. 내 명령 순서는 아래 터미널 출력을 참조하세요. 안타깝게도 원본 tar 파일이나 폴더가 없으므로 이번이 이 데이터를 복구할 수 있는 유일한 기회입니다. 파일 휠에서 아카이브를 열면 압축을 푼 후 명령줄에 표시되는 것과 동일한 폴더가 표시됩니다. 이는 표시될 것으로 예상되는 파일의 하위 집합일 뿐입니다. 왜 이런 일이 발생하는지 제안할 수 있는 사람이 있나요?
~> cat xa* > archive
~> file archive
archive: POSIX tar archive (GNU)
~> ls -la archive
-rw-r--r-- 1 hugo users 24471439360 Jun 1 18:50 archive
~> tar xf archive
~> cd repos
~/repos> du --max-depth 0 -h
83M .
~/repos> cd ../
~> tar cf newarchive repos
~> ls -la newarchive
-rw-r--r-- 1 hugo users 53288960 Jun 1 19:57 newarchive
답변1
tar 파일의 끝을 나타내는 표시가 발견될 때까지 tar 파일이 추출됩니다.물리적으로 아카이브는 두 개의 512 0바이트 블록으로 구성된 아카이브 끝 항목으로 끝나는 일련의 파일 항목으로 구성됩니다.tar 파일 형식 설명에서여기.
따라서 태그를 지정한 후 아카이브에 추출되지 않은 자료가 포함될 수 있습니다.
답변2
추출하려는 디스크에 tar 아카이브의 모든 파일과 디렉터리를 수용할 만큼 충분한 여유 공간이 없는 것 같습니다. df -k .
파일을 추출한 디렉토리를 확인하십시오 .
때때로 "누출"이 있는 파일을 tar하면 원본 파일보다 훨씬 큰 tar 아카이브가 생성됩니다. 또한 tar 아카이브 파일에는 파일 데이터뿐만 아니라 메타데이터, 파일 이름, 권한, 소유권 등도 포함됩니다. 따라서 tar 아카이브는 항상 원본 파일보다 약간 더 큽니다.