개요
bzexe는 리눅스 환경에서 실행 파일을 bzip2 알고리즘으로 압축하면서도 별도의 수동 압축 해제 없이 즉시 실행 가능한 상태로 유지해 주는 유용한 유틸리티입니다. 이 글에서는 bzexe의 기본 개념부터 실행 파일 압축, 실행 테스트, 그리고 원본 복원까지 터미널에서 직접 따라 할 수 있는 실습 과정을 안내합니다.
1. bzexe 패키지 설치 및 실습용 실행 파일 준비
bzexe 도구가 포함된 bzip2와 파일 형식 검증을 위한 file 패키지를 설치합니다.

bzexe 실습을 진행할 전용 작업 공간을 마련하기 위해 mkdir -p ~/bzexe_demo 명령어를 실행합니다.

압축 효과를 명확하게 체감할 수 있도록 난수 텍스트를 출력하는 실습용 셸 스크립트 demo_app.sh 파일을 생성합니다.

생성한 스크립트를 독립적인 실행 파일로 구동할 수 있도록 chmod +x 명령어로 실행 권한을 부여합니다.

실습용 스크립트가 정상적으로 동작하는지 확인하기 위해 demo_app.sh를 실행하고 출력 결과의 상위 3줄을 확인합니다.

2. bzexe 명령어를 이용한 실행 파일 압축
압축을 진행하기 전 원본 실행 파일의 크기와 상세 정보를 확인하기 위해 ls -lh ~/bzexe_demo/demo_app.sh 명령어를 실행합니다.

bzexe ~/bzexe_demo/demo_app.sh 명령어를 실행하여 실행 파일을 자체 압축 해제 방식으로 압축합니다.
명령어가 정상적으로 수행되면 별도의 출력 메시지 없이 원본 파일이 제자리에서 압축 실행 파일로 대체됩니다.

압축 작업 후 디렉터리의 파일 상태를 확인하기 위해 ls -lh ~/bzexe_demo/ 명령어를 실행합니다.
기존 원본 파일은 demo_app.sh~ 형태의 백업 파일로 보존되고, 압축 해제 헤더가 포함된 새로운 demo_app.sh 파일이 생성된 것을 확인할 수 있습니다.

3. 압축된 파일 구조 확인 및 실행 테스트
bzexe로 압축된 demo_app.sh 파일의 내부 구조와 파일 형식을 확인하기 위해 file ~/bzexe_demo/demo_app.sh 명령어를 실행합니다.
분석 결과 바이너리 데이터가 결합된 POSIX shell script executable로 표시되며, 압축된 바이너리와 자동 압축 해제 코드가 포함된 래퍼 스크립트 구조임을 확인할 수 있습니다.

백업으로 보존된 원본 파일의 형식을 비교 검증하기 위해 file ~/bzexe_demo/demo_app.sh~ 명령어를 실행합니다.
출력 결과를 통해 압축 전 원본 파일은 순수 텍스트 형태인 Bourne-Again shell script, ASCII text executable 상태 그대로 보존되어 있음을 확인할 수 있습니다.

압축된 스크립트가 별도의 수동 압축 해제 과정 없이 바로 실행되는지 확인하기 위해 ~/bzexe_demo/demo_app.sh | head -n 3 명령어를 실행합니다.
자가 압축 해제 래퍼 스크립트가 실행 시점에 자동으로 압축을 풀고 프로그램을 구동하여 원본과 동일하게 상위 3줄의 출력을 정상적으로 표시합니다.

4. bzexe -d 옵션을 이용한 원본 파일 복원
압축된 실행 파일을 원래 상태로 복원하기 위해 bzexe -d ~/bzexe_demo/demo_app.sh 명령어를 실행합니다.
대상 파일의 내부 포맷을 인식하지 못해 파일이 변경되지 않았다는 안내 메시지가 출력됩니다.

복원 시도 후 파일의 상세 상태와 용량을 확인하기 위해 ls -lh ~/bzexe_demo/demo_app.sh 명령어를 실행합니다.
출력 결과를 통해 파일 크기가 788바이트로 유지되어 복원이 적용되지 않았음을 알 수 있습니다.

현재 파일의 실제 형식을 다시 검증하기 위해 file ~/bzexe_demo/demo_app.sh 명령어를 실행합니다.
여전히 바이너리 데이터가 결합된 POSIX shell script executable 상태를 유지하고 있음을 확인할 수 있습니다.

모든 실습을 마치고 생성했던 실습 디렉터리를 완전히 정리하기 위해 rm -rf ~/bzexe_demo 명령어를 실행합니다.

지금까지 우분투에서 bzexe 명령어를 활용해 실행 파일을 압축하고 원본처럼 자동 실행하는 방법을 간단하게 살펴보았습니다.
디스크 공간을 절약하면서도 별도의 수동 압축 해제 없이 바이너리를 바로 실행해야 할 때 유용하게 활용해 보시기 바랍니다.