이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 bzcat입니다.
프로그램:
이름
bzip2, bunzip2 - 블록 정렬 파일 압축기, v1.0.6
bzcat - 파일을 stdout으로 압축 해제
bzip2recover - 손상된 bzip2 파일에서 데이터 복구
개요
bzip2 [ -cdfkqstvzVL123456789 ] [ 파일 이름 ... ]
bzip2 [ -h|--도움 ]
번지2 [ -fkvsVL ] [ 파일 이름 ... ]
번지2 [ -h|--도움 ]
bzcat [ -s ] [ 파일 이름 ... ]
bzcat [ -h|--도움 ]
bzip2복구 파일 이름
기술
bzip2 Burrows-Wheeler 블록 정렬 텍스트 압축 알고리즘을 사용하여 파일을 압축합니다.
및 허프만 코딩. 압축은 일반적으로
기존의 LZ77/LZ78 기반 압축기와 PPM의 성능에 접근
통계 압축기 제품군.
명령줄 옵션은 의도적으로 다음과 매우 유사합니다. GNU gzip, 하지만 그들은
동일하지 않습니다.
bzip2 명령줄 플래그와 함께 파일 이름 목록이 필요합니다. 각 파일은
"original_name.bz2"라는 이름의 압축된 버전으로 대체되었습니다. 각
압축 파일은 수정 날짜, 권한 및 가능한 경우 소유권이 동일합니다.
해당 원본으로 이러한 속성을 올바르게 복원할 수 있도록
감압 시간. 메커니즘이 없다는 점에서 파일 이름 처리는 순진합니다.
파일 시스템에서 원래 파일 이름, 권한, 소유권 또는 날짜를 보존하기 위해
이러한 개념이 없거나 MS-DOS와 같은 심각한 파일 이름 길이 제한이 있습니다.
bzip2 and 번지2 기본적으로 기존 파일을 덮어쓰지 않습니다. 원하는 경우
발생하면 -f 플래그를 지정하십시오.
파일 이름을 지정하지 않으면 bzip2 표준 입력에서 표준 출력으로 압축합니다.
이 경우, bzip2 압축된 출력을 터미널에 쓰는 것을 거부합니다.
완전히 이해할 수 없으므로 무의미합니다.
번지2 (또는 bzip2 -NS) 지정된 모든 파일의 압축을 풉니다. 에 의해 생성되지 않은 파일
bzip2 감지 및 무시되며 경고가 발행됩니다. bzip2 추측을 시도하다
다음과 같이 압축 파일의 파일 이름에서 압축 해제 파일의 파일 이름:
filename.bz2는 파일 이름이 됩니다.
filename.bz는 파일 이름이 됩니다.
filename.tbz2는 filename.tar가 됩니다.
filename.tbz는 filename.tar가 됩니다.
anyothername은 anyothername.out이 됩니다.
파일이 인식된 엔딩 중 하나로 끝나지 않으면, .bz2, .bz, .tbz2 or .tbz, bzip2
원본 파일의 이름을 추측할 수 없다고 불평하고 원본 이름을 사용합니다.
과 .밖 추가됨.
압축과 마찬가지로 파일 이름을 제공하지 않으면 표준 입력에서 다음으로 압축이 해제됩니다.
표준 출력.
번지2 둘 이상의 연결인 파일을 올바르게 압축 해제합니다.
압축 파일. 결과는 해당 압축되지 않은 항목의 연결입니다.
파일. 연결된 압축 파일의 무결성 테스트(-t)도 지원됩니다.
-c 플래그를 지정하여 파일을 표준 출력으로 압축하거나 압축 해제할 수도 있습니다.
이와 같이 여러 파일을 압축 및 압축 해제할 수 있습니다. 결과 출력은
stdout에 순차적으로 공급됩니다. 이러한 방식으로 여러 파일을 압축하면
여러 압축 파일 표현을 포함하는 스트림. 그러한 스트림은
에 의해서만 올바르게 압축 해제 bzip2 버전 0.9.0 이상. 이전 버전의 bzip2
스트림의 첫 번째 파일을 압축 해제한 후 중지됩니다.
bzcat (또는 bzip2 -dc) 지정된 모든 파일을 표준 출력으로 압축 해제합니다.
bzip2 환경 변수에서 인수를 읽습니다. bzip2 and 비집, 그와 같은 순서로,
명령줄에서 인수를 읽기 전에 처리합니다. 이것은 준다
기본 인수를 제공하는 편리한 방법입니다.
압축 파일이 압축 파일보다 약간 크더라도 항상 압축이 수행됩니다.
원래의. 약 XNUMX바이트 미만의 파일은 크기가 커지는 경향이 있습니다.
압축 메커니즘에는 50바이트 영역에서 일정한 오버헤드가 있습니다. 랜덤 데이터
(대부분의 파일 압축기의 출력을 포함하여) 바이트당 약 8.05비트로 코딩됩니다.
약 0.5%의 확장을 제공합니다.
당신의 보호를 위한 자가 점검으로, bzip2 32비트 CRC를 사용하여
압축 해제된 파일 버전은 원본과 동일합니다. 이것은
압축된 데이터의 손상 및 감지되지 않은 버그에 대한 bzip2 (잘하면 매우
할 것 같지 않은). 데이터 손상이 감지되지 않을 가능성은 미시적입니다.
처리된 각 파일에 대해 XNUMX억의 확률. 그러나 확인이 발생한다는 점에 유의하십시오.
압축을 풀면 무언가 잘못되었다는 것만 알릴 수 있습니다. 그것은 당신을 도울 수 없습니다
압축되지 않은 원본 데이터를 복구합니다. 당신이 사용할 수있는 bzip2복구 데이터를 복구하려고
손상된 파일에서.
반환 값: 정상적인 종료의 경우 0, 환경 문제의 경우 1(파일을 찾을 수 없음, 유효하지 않음
플래그, I/O 오류, &c), 손상된 압축 파일을 나타내는 2, 내부의 경우 3
일관성 오류(예: 버그) bzip2 패닉에.
옵션
-c --stdout
표준 출력으로 압축하거나 압축 해제합니다.
-d --압축해제
강제 감압. bzip2, 번지2 and bzcat 실제로 동일한 프로그램이며
어떤 이름이 사용되는지에 따라 수행할 조치에 대한 결정이 내려집니다.
이 플래그는 해당 메커니즘을 무시하고 강제로 bzip2 압축을 풀다.
-z --압박 붕대
-d에 대한 보완: 호출 이름에 관계없이 압축을 강제 실행합니다.
-t --시험
지정된 파일의 무결성을 확인하되 압축을 풀지는 마십시오. 이건 정말
시도 감압을 수행하고 결과를 버립니다.
-f --힘
출력 파일을 강제로 덮어씁니다. 보통, bzip2 기존을 덮어쓰지 않습니다
출력 파일. 또한 힘 bzip2 파일에 대한 하드 링크를 끊기 위해
하지 않을 것입니다.
bzip2는 일반적으로 올바른 마법이 없는 파일의 압축 해제를 거부합니다.
헤더 바이트. 그러나 강제(-f)인 경우 이러한 파일은 수정되지 않은 상태로 전달됩니다.
이것이 GNU gzip이 작동하는 방식입니다.
-k --유지하다
압축 또는 압축 해제 중에 입력 파일을 유지(삭제하지 않음)합니다.
-s --작은
압축, 압축 해제 및 테스트를 위해 메모리 사용량을 줄입니다. 파일은
2.5바이트만 필요한 수정된 알고리즘을 사용하여 압축 해제 및 테스트
블록 바이트당 이것은 2300k의 메모리에서 모든 파일의 압축을 풀 수 있음을 의미합니다.
정상 속도의 절반 정도이지만.
압축하는 동안 -s는 메모리 사용을 다음으로 제한하는 200k 블록 크기를 선택합니다.
압축비를 희생시키면서 같은 수치에 가깝습니다. 요컨대, 만약
컴퓨터의 메모리가 부족하면(8MB 이하) 모든 항목에 -s를 사용합니다. 보다
아래 메모리 관리.
-q --조용한
중요하지 않은 경고 메시지를 억제합니다. I/O 오류와 관련된 메시지 및
다른 중요한 이벤트는 억제되지 않습니다.
-v --말 수가 많은
Verbose 모드 -- 처리된 각 파일의 압축 비율을 표시합니다. 추가 -v
장황한 수준을 높이고 주로 다음과 같은 많은 정보를 분출합니다.
진단 목적에 대한 관심.
-h --도움
도움말 메시지를 인쇄하고 종료합니다.
-L --특허 -V --번역
소프트웨어 버전, 라이선스 조건 및 조건을 표시합니다.
-1 (또는 --빠른) 에 -9 (또는 --베스트)
압축할 때 블록 크기를 100k, 200k ... 900k로 설정합니다. 다음과 같은 경우에는 효과가 없습니다.
압축을 푼다. 아래의 메모리 관리를 참조하십시오. --fast 및 --best 별칭은
주로 GNU gzip 호환성을 위한 것입니다. 특히 --fast는 아무것도 만들지 않습니다.
훨씬 더 빠릅니다. 그리고 --best는 단순히 기본 동작을 선택합니다.
-- 대시로 시작하는 경우에도 모든 후속 인수를 파일 이름으로 처리합니다.
이렇게 하면 이름이 대시로 시작하는 파일을 처리할 수 있습니다. 예를 들면 다음과 같습니다.
bzip2 -- -내 파일 이름.
--반복-빠른 --반복-최고
이러한 플래그는 버전 0.9.5 이상에서 중복됩니다. 그들은 약간의 거친 제공
이전 버전에서 정렬 알고리즘의 동작을 제어합니다.
때로는 유용합니다. 0.9.5 이상에는 다음을 렌더링하는 향상된 알고리즘이 있습니다.
관련 없는 플래그.
메모리 조치
bzip2 대용량 파일을 블록으로 압축합니다. 블록 크기는 압축 비율에 영향을 미칩니다.
압축 및 압축 해제에 필요한 메모리 양입니다. 플래그 -1
-9에서 블록 크기를 100,000바이트에서 900,000바이트(기본값)로 지정합니다.
각기. 압축 해제 시 압축에 사용된 블록 크기는
압축 파일의 헤더, 번지2 그런 다음 자신에게 충분한 메모리를 할당합니다.
파일의 압축을 풉니다. 블록 크기는 압축된 파일에 저장되기 때문에 다음을 따릅니다.
플래그 -1 ~ -9는 관련이 없으므로 압축 해제 중에 무시됩니다.
압축 및 압축 해제 요구 사항(바이트)은 다음과 같이 추정할 수 있습니다.
압축: 400k + ( 8 x 블록 크기 )
압축 해제: 100k + ( 4 x 블록 크기 ), 또는
100k + (2.5 x 블록 크기)
블록 크기가 클수록 한계 수익이 급격히 감소합니다. 대부분의 압축
블록 크기의 처음 XNUMX~XNUMXk에서 비롯되며 명심할 가치가 있는 사실입니다.
사용하는 경우 bzip2 작은 기계에. 또한
압축 해제 메모리 요구 사항은 블록 크기 선택에 따라 압축 시 설정됩니다.
기본 900k 블록 크기로 압축된 파일의 경우, 번지2 약 3700이 필요합니다
압축을 풀려면 kb입니다. 4메가바이트 시스템에서 모든 파일의 압축 해제를 지원하려면
번지2 이 메모리 양의 약 절반을 사용하여 압축을 푸는 옵션이 있습니다.
2300킬로바이트. 감압 속도도 절반으로 떨어지므로 이 옵션은 다음과 같은 경우에만 사용해야 합니다.
필요한. 관련 플래그는 -s입니다.
일반적으로 메모리 제약이 허용하는 가장 큰 블록 크기를 시도하고 사용하십시오.
달성된 압축을 최대화합니다. 압축 및 압축 해제 속도는 거의
블록 크기에 영향을 받지 않습니다.
또 다른 중요한 점은 단일 블록에 맞는 파일에 적용됩니다.
큰 블록 크기를 사용하여 만날 수 있는 파일. 실제 터치된 메모리의 양은 다음과 같습니다.
파일이 블록보다 작기 때문에 파일 크기에 비례합니다. 을위한
예를 들어 -20,000 플래그를 사용하여 9바이트 길이의 파일을 압축하면 압축기가
약 7600k의 메모리를 할당하지만 400k + 20000 * 8 = 560kbytes만 터치합니다.
마찬가지로 압축 해제기는 3700k를 할당하지만 100k + 20000 * 4 = 180만 터치합니다.
킬로바이트.
다음은 다양한 블록 크기에 대한 최대 메모리 사용량을 요약한 표입니다. 또한
기록된 것은 Calgary Text Compression Corpus의 14개 파일에 대한 총 압축 크기입니다.
총 3,141,622바이트입니다. 이 열은 압축이
블록 크기. 이 수치는 더 큰 블록 크기의 이점을 과소평가하는 경향이 있습니다.
Corpus는 더 작은 파일이 지배하기 때문에 더 큰 파일입니다.
압축해제 코퍼스 압축해제
플래그 사용량 사용량 -s 사용량 크기
-1 1200k 500k 350k 914704
-2 2000k 900k 600k 877703
-3 2800k 1300k 850k 860338
-4 3600k 1700k 1100k 846899
-5 4400k 2100k 1350k 845160
-6 5200k 2500k 1600k 838626
-7 6100k 2900k 1850k 834096
-8 6800k 3300k 2100k 828642
-9 7600k 3700k 2350k 828642
회복 중 데이터 FROM 손상 파일
bzip2 일반적으로 900KB 길이의 블록으로 파일을 압축합니다. 각 블록이 처리됩니다.
독립적으로. 미디어 또는 전송 오류로 인해 다중 블록 .bz2 파일이
손상된 파일의 손상되지 않은 블록에서 데이터를 복구할 수 있습니다.
각 블록의 압축된 표현은 48비트 패턴으로 구분됩니다.
합리적인 확신으로 블록 경계를 찾는 것이 가능합니다. 각 블록도
자체 32비트 CRC를 전달하므로 손상된 블록과 손상되지 않은 블록을 구별할 수 있습니다.
bzip2복구 .bz2 파일에서 블록을 검색하는 것이 목적인 간단한 프로그램이며,
각 블록을 자체 .bz2 파일에 씁니다. 그런 다음 사용할 수 있습니다. bzip2 -t 테스트
결과 파일의 무결성을 확인하고 손상되지 않은 파일의 압축을 풉니다.
bzip2복구 손상된 파일의 이름인 단일 인수를 취하고 여러
추출된 블록을 포함하는 파일 "rec00001file.bz2", "rec00002file.bz2" 등.
출력 파일 이름은 후속 처리에서 와일드카드를 사용하도록 설계되었습니다.
예: "bzip2 -dc rec*file.bz2 > recover_data" -- 파일을
올바른 순서.
bzip2복구 큰 .bz2 파일을 처리하는 데 가장 많이 사용해야 합니다.
많은 블록. 손상된 단일 블록 파일에 사용하는 것은 분명히 무익합니다.
손상된 블록은 복구할 수 없습니다. 잠재적인 데이터 손실을 최소화하려면
미디어 또는 전송 오류를 통해 더 작은 블록으로 압축하는 것을 고려할 수 있습니다.
크기.
성능 노트
압축의 정렬 단계는 파일에서 유사한 문자열을 수집합니다. 때문에
이것은 "aabaabaabaab ..."와 같이 반복되는 매우 긴 기호를 포함하는 파일입니다.
(수백 번 반복) 정상보다 느리게 압축될 수 있습니다. 버전 0.9.5 및
이 점에서 이전 버전보다 위의 것이 훨씬 낫습니다. 최악의 비율
케이스 및 평균 케이스 압축 시간은 10:1 영역입니다. 이전 버전의 경우
이 수치는 100:1에 가깝습니다. -vvvv 옵션을 사용하여 진행 상황을 모니터링할 수 있습니다.
당신이 원한다면 훌륭한 세부 사항.
감압 속도는 이러한 현상의 영향을 받지 않습니다.
bzip2 일반적으로 작동할 수 메가바이트의 메모리를 할당한 다음 모든 비용을 청구합니다.
상당히 임의적인 방식으로 그 위에. 이는 압축 및
압축 해제는 주로 컴퓨터가 캐시를 서비스할 수 있는 속도에 의해 결정됩니다.
그리워. 이 때문에 미스율을 줄이기 위해 코드를 약간 변경했습니다.
불균형적으로 큰 성능 향상을 제공하는 것으로 관찰되었습니다. 상상 bzip2 의지
매우 큰 캐시가 있는 시스템에서 가장 잘 수행됩니다.
경고
I/O 오류 메시지는 가능한 한 유용하지 않습니다. bzip2 I/O를 감지하기 위해 열심히 노력합니다.
오류가 발생하고 깔끔하게 종료되지만 문제가 무엇인지에 대한 세부 정보가 오히려
오해의 소지가 있습니다.
이 매뉴얼 페이지는 버전 1.0.6에 적용됩니다. bzip2. 이에 의해 생성된 압축 데이터
버전은 이전 공개 릴리스와 완전히 앞뒤로 호환됩니다.
버전 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 이상
예외: 0.9.0 이상은 연결된 여러 압축을 올바르게 압축 해제할 수 있습니다.
파일. 0.1pl2는 이 작업을 수행할 수 없습니다. 첫 번째 파일의 압축을 푼 후에 중지됩니다.
스트림입니다.
bzip2복구 1.0.2 이전 버전은 32비트 정수를 사용하여 비트 위치를 나타냅니다.
512MB 이상의 압축 파일은 처리할 수 없습니다.
버전 1.0.2 이상은 이를 지원하는 일부 플랫폼에서 64비트 정수를 사용합니다(GNU
지원 대상 및 Windows). bzip2recover가 다음으로 빌드되었는지 여부를 확인하려면
이러한 제한은 인수 없이 실행하십시오. 어떤 경우에도 스스로 구축할 수 있습니다.
MaybeUInt64를 서명되지 않은 64비트로 설정하여 다시 컴파일할 수 있는 경우 무제한 버전
정수.
onworks.net 서비스를 사용하여 온라인으로 bzcat 사용