GNUSparseFile.0 디렉터리를 삭제해도 안전합니까?

GNUSparseFile.0 디렉터리를 삭제해도 안전합니까?

어떤 파일 시스템이 디스크 공간을 소비하고 있는지 확인하기 위해 일부 파일 시스템을 살펴보는 동안 GNUSparseFile.0. 감압 후 일시적으로 남아 있는 것이 아닐까요? 운영 체제는 FreeBSD이므로 BSD 압축 해제가 사용되었을 수 있습니다 tar.

답변1

나는 전에 이것에 물린 적이 있습니다.

네가 옳아. GNU tar매뉴얼은 당신에게 거짓말을 팔려고 합니다:

발견했다고 주장함가지고 다닐 수 있는희소 영역을 0으로 확장하지 않고 희소 파일을 보관하는 방법입니다. 어떤 tar.

현재 tar 형식에는 "A의 영역은 0이고 추출 시 희소하게 표시됩니다"와 같은 항목을 지정하는 옵션이 없습니다. 그래서 그들이 한 일은 이 문제를 해결하기 위해 파일 헤더에 무언가를 추가하거나(솔직히 공간이 많지 않음) 압축을 풀 수 없는 경우 압축 풀기가 사용자에게 알리도록 하는 것이었습니다. 파일에서 그들은 먼저 파일의 희박한 영역과 파일의 희박하지 않은 나머지 영역에 대한 맵을 포함하는 컨테이너라는 새로운 데이터 구조를 tar발명 했습니다.gzip

그런 다음 GNU tar를 사용하면 이러한 "의사 희소 컨테이너"를 보관하고 희소성을 유지하도록 지시합니다.

물론 추출할 때 동일한 구현을 사용하지 않으면 희소 파일이 아닌 컨테이너를 얻게 됩니다. 이는 사용자에게 다소 놀라운 일일 수 있으며 "이식성"의 개념을 깨뜨립니다(즉, 입력한 데이터는 tar. 또한 여기에서 인터페이스가 얼마나 형편없이 설계되었는지 확인하세요 xsparse. 원래 희박한 파일 이름을 알고 수동으로 찾아야 합니다.

누군가가 이러한 희박한 파일 컨테이너가 포함된 GNU 파일의 압축을 풀고 해당 아카이브에 있을 것으로 예상한 파일을 정리했을 가능성이 있습니다 tar(아마도 tar 아카이브와 다른 방식으로 도달한 파일 목록을 통해). 그들은 원본 파일(정리 중에 찾을 수 없음)을 기대하지만 희소 컨테이너는 기대하지 않습니다. 따라서 희소 컨테이너는 압축을 푼 파일에서 나온 것으로 보이지 않으므로 이를 무시합니다.

그래서 이것이 여러분이 얻는 것입니다: tarGNU가 생성한 TAR의 내용이며 궁극적으로 컨테이너에서 압축을 풀지 않은 것입니다.

관련 정보