Bunzip2 - 리눅스 명령 - 유닉스 명령

이름

bzip2, bunzip2 - 블록 정렬 파일 압축기, v1.0.2
bzcat - 파일을 stdout으로 압축 해제합니다.
bzip2recover - 손상된 bzip2 파일 에서 데이터를 복구 합니다.

개요

bzip2 [ -cdfkqstvzVL123456789 ] [ 파일 이름 ... ]
bunzip2 [ -fkvsVL ] [ 파일 이름 ... ]
bzcat [ -s ] [ 파일 이름 ... ]
bzip2recover 파일 이름

기술

bzip2 는 Burrows-Wheeler 블록 정렬 텍스트 압축 알고리즘과 Huffman 코딩을 사용하여 파일을 압축합니다. 압축 은 일반적으로 기존의 LZ77 / LZ78 기반 압축기보다 훨씬 우수하며 통계 압축기 PPM 제품군의 성능에 근접합니다.

명령 행 옵션은 의도적으로 GNU gzip 의 옵션과 매우 유사하지만 동일하지는 않습니다.

bzip2 는 명령 줄 플래그와 함께 파일 이름 목록을 필요로합니다. 각 파일은 "original_name.bz2"라는 이름의 자체 압축 버전으로 대체됩니다. 각 압축 파일은 수정 날짜, 사용 권한 및 가능하면 소유권을 해당 원본으로 가지므로 압축 해제 시간에 이러한 속성을 올바르게 복원 할 수 있습니다. 이러한 개념이없는 파일 시스템에서 원본 파일 이름, 사용 권한, 소유권 또는 날짜를 보존하거나 MS-DOS와 같이 심각한 파일 이름 길이 제한이있는 메커니즘이 없다는 점에서 파일 이름 처리는 순진합니다.

bzip2bunzip2 는 기본적으로 기존 파일을 덮어 쓰지 않습니다. 이를 원하면 -f 플래그를 지정하십시오.

파일 이름을 지정하지 않으면 bzip2 는 표준 입력에서 표준 출력으로 압축합니다. 이 경우, bzip2 는 압축 된 출력을 터미널에 쓰지 않습니다. 이것은 완전히 이해할 수 없으므로 무의미합니다.

bunzip2 (또는 bzip2 -d)는 지정된 모든 파일의 압축을 풉니 다. bzip2 가 작성하지 않은 파일은 감지되고 무시되며 경고가 발행됩니다. bzip2 는 다음과 같이 압축 파일의 파일 이름에서 압축 해제 된 파일의 파일 이름을 추측하려고 시도합니다.


filename.bz2는 파일 이름이됩니다.
filename.bz는 파일 이름이됩니다.
filename.tbz2는 filename.tar가됩니다.
filename.tbz는 filename.tar가됩니다.
anyothername은 anyothername.out이됩니다.

파일이 인식 된 결말 중 하나 인 .bz2, .bz, .tbz2 또는 .tbz에서 끝나지 않으면 bzip2 는 원래 파일의 이름을 추측 할 수 없다는 불평과 .out이 첨부 된 원래 이름을 사용합니다.

압축과 마찬가지로 파일 이름을 제공하지 않으면 표준 입력에서 표준 출력으로 압축이 풀립니다.

bunzip2 는 두 개 이상의 압축 파일을 연결 한 파일을 올바르게 압축 해제합니다. 결과는 해당 압축되지 않은 파일의 연결입니다. 연결된 압축 파일의 무결성 테스트 (t)도 지원됩니다.

-c 플래그를 지정하여 파일을 표준 출력으로 압축하거나 압축을 풀 수도 있습니다. 이렇게 여러 파일을 압축하고 압축을 풀 수 있습니다. 결과 출력은 stdout에 순차적으로 제공됩니다. 이러한 방식으로 여러 파일을 압축하면 여러 개의 압축 된 파일 표현이 포함 된 스트림이 생성됩니다. 이러한 스트림은 bzip2 버전 0.9.0 이상에서만 올바르게 압축 해제 할 수 있습니다. 이전 버전의 bzip2 는 스트림의 첫 번째 파일을 압축 해제 한 후 중지됩니다.

bzcat (또는 bzip2 -dc)은 지정된 모든 파일을 표준 출력으로 압축 해제합니다.

bzip2 는 환경 변수 BZIP2BZIP 에서 인수를 순서대로 읽으며 명령 행에서 인수를 읽기 전에 처리합니다. 이것은 기본 인수를 제공하는 편리한 방법을 제공합니다.

압축 된 파일이 원본보다 약간 큰 경우에도 압축은 항상 수행됩니다. 압축 메커니즘이 50 바이트 영역에서 일정한 오버 헤드를 가지므로 약 100 바이트 미만의 파일은 더 커지는 경향이 있습니다. 무작위 데이터 (대부분의 파일 압축기의 출력 포함)는 바이트 당 약 8.05 비트로 코딩되어 약 0.5 %의 확장을 제공합니다.

bzip2 는 32 비트 CRC를 사용하여 파일의 압축 해제 버전이 원본과 동일한 지 확인합니다. 이렇게하면 압축 된 데이터의 손상과 bzip2의 감지되지 않은 버그를 방지 할 수 있습니다 (가능성은 거의 없음). 탐지되지 않는 데이터 손상의 가능성은 현미경 적으로 처리되는 각 파일에 대해 40 억 건 중 하나입니다. 검사는 감압시에 발생하므로 문제가 있다고 만 알 수 있습니다. 압축되지 않은 원본 데이터를 복구하는 데는 도움이되지 않습니다. bzip2recover 를 사용하여 손상된 파일에서 데이터를 복구 할 수 있습니다.

반환 값 : 정상 종료의 경우 0, 환경 문제 (파일을 찾을 수없는 경우, 잘못된 플래그, I / O 오류, & c), 손상된 압축 파일을 나타내는 경우 1, 발생 된 내부 일관성 오류 (예 : 버그) bzip2 로 공포.

옵션

-c --stdout

표준 출력으로 압축 또는 압축 해제하십시오.

-d - 압축 해제

강제 감압. bzip2, bunzip2bzcat 은 실제로 동일한 프로그램이며 어떤 작업을 수행할지에 대한 결정은 어떤 이름을 사용하는지에 따라 결정됩니다. 이 플래그는 해당 메커니즘을 대체하고 bzip2 가 압축을 풀도록합니다.

-z - 압축

-d의 보수는 호출 이름에 관계없이 압축을 강제합니다.

-t - 테스트

지정한 파일의 무결성을 확인하되 압축을 해제하지 마십시오. 이것은 실제로 재판 감압을 수행하고 결과를 버립니다.

-f --force

출력 파일을 강제로 덮어 씁니다. 일반적으로, bzip2 는 기존 출력 파일을 겹쳐 쓰지 않습니다. 또한 bzip2 가 파일에 대한 하드 링크를 끊도록 강제합니다. 그렇지 않으면 그렇지 않을 것입니다.

bzip2는 보통 올바른 마술 헤더 바이트가없는 파일의 압축을 해제합니다. 그러나 강제 (-f)하면 수정되지 않은 파일이 전달됩니다. 이것이 GNU gzip의 동작입니다.

-k - 유지

압축 또는 압축 해제 중에 입력 파일을 보관하십시오 (삭제하지 마십시오).

-s --small

압축, 압축 해제 및 테스트를 위해 메모리 사용량을 줄입니다. 파일은 압축 해제되고 블록 바이트 당 2.5 바이트 만 필요한 수정 된 알고리즘을 사용하여 테스트됩니다. 즉, 보통 속도의 절반 정도이지만 2300k의 메모리에서 모든 파일을 압축 해제 할 수 있습니다.

압축하는 동안 -s는 200k의 블록 크기를 선택합니다. 압축 비율을 희생시키면서 메모리 사용량을 거의 같은 수치로 제한합니다. 간단히 말해, 시스템의 메모리가 부족하면 (8 메가 바이트 이하), 모든 경우에 -s를 사용하십시오. 아래의 메모리 관리를 참조하십시오.

-q --quiet

불필요한 경고 메시지를 표시하지 않습니다. I / O 오류 및 기타 중대한 이벤트와 관련된 메시지는 표시되지 않습니다.

-v - 자세한 정보 표시

자세한 정보 표시 모드 - 처리 된 각 파일의 압축률을 표시합니다. 더 나아가 -v는 진단 목적으로 주로 사용되는 많은 정보를 추출하여 자세한 정보 수준을 높입니다.

-L --license -V --version

소프트웨어 버전, 라이센스 조항 및 조건을 표시하십시오.

-1 (또는 --fast)에서 -9 (또는 --best)

블록 크기를 100k, 200k ... 900k로 설정하십시오. 압축을 풀 때 아무런 효과가 없습니다. 아래의 메모리 관리를 참조하십시오. --fast 및 --best 별칭은 주로 GNU gzip 호환성을위한 것입니다. 특히, --fast는 일을 훨씬 빠르게 만듭니다. 그리고 --best는 기본 동작을 선택하기 만합니다.

모든 후속 인수를 대시로 시작하는 경우에도 파일 이름으로 취급합니다. 이것은 대시로 시작하는 이름을 갖는 파일을 처리 할 수 ​​있도록하기위한 것입니다 (예 : bzip2 - -myfilename).

- 반복적 인 - 빠른 - 반복적 인 - 최상의

이 플래그는 버전 0.9.5 이상에서는 중복됩니다. 그들은 이전 버전에서 정렬 알고리즘의 동작에 대해 거친 제어를 제공했는데 때로는 유용했습니다. 0.9.5 이상에서는 이러한 플래그를 관련성없는 알고리즘으로 개선했습니다.

중요 : man 명령 ( % man )을 사용하여 특정 컴퓨터에서 명령이 어떻게 사용되는지보십시오.

관련 기사