2012-07-06 2 views
3

일부 파일을 tar 시도하고 php passthru 명령을 통해 사용자에게 전달합니다.tar에 의해 생성 된 후행 null 문자를 제거하십시오.

문제는 tar 파일이 2k와 같아야한다는 것입니다. 항상 10240입니다. 재미있는 번호 맞습니까?

그래서 나는 아래를 부러 :

-sh-4.1# tar czf - test | wc -c 
10240 

VS :

-sh-4.1# tar czf test.tar.gz test && wc -c test.tar.gz 
2052 test.tar.gz 

그래서 타르가 명확하게 NULL로 파일을 패딩한다.

어떻게하면 타르를 중지시킬 수 있습니까? 또는 후행 NULL을 제거하는 방법은 무엇입니까?

나는 tar (GNU tar) 1.23 인 내 워크 스테이션에서 재현 할 수 없으며, 이것은 임베디드 프로젝트 업그레이드이므로 아직 찾고 있지 않습니다.

편집 : 파일 시스템에 쓰기가 필요한 해결 방법이 필요합니다. 패딩을 중지하거나 패딩을 제거하기 위해 sed 또는 무언가를 통과시키는 방법 일 수 있습니다. 테스트> tar.redirect`와`타르 czf tar.file -

+0

당신이 타르 czf'의 결과를 업로드 할 수 타르 -b1을 통과하려고 테스트 어딘가에? 또한 GNU tar 1.15.1을 실행중인 아키텍처는 무엇입니까? – phihag

+3

* "tar 및 cpio 형식의 경우 출력이 표준 출력이나 테이프 드라이브와 같은 문자 또는 블록 장치에 기록되는 경우 출력의 마지막 블록은 전체 블록 크기로 채워집니다. 일반 파일이면 마지막 블록은 채워지지 않습니다. "* ('man tar') - 대답은 파일에 쓰는 것 같습니다 : :) – deceze

+0

Yupp, @deceze. 나는 또한 그것을 보았다. 파일 시스템을 만지지 않는 해결 방법이 필요했다. 아마도 패딩을 막거나 패딩을 제거하기 위해 sed 또는 파이프를 통과하는 방법 일 수있다. – barsju

답변

0

더 작은 블록 크기를 사용하여 패딩 효과를 감쇄 할 수

관련 문제