Selbstextrahierende komprimierte Dateien

Zuletzt verändert am 24. Juli 2026 • 1 Min. Lesezeit • 140 Wörter
Heute habe ich aus einem PDF-Dokument (disclosure.pdf) eine selbstextrahierende, komprimierte Datei erstellt.

Heute habe ich aus einem PDF-Dokument (disclosure.pdf) eine selbstextrahierende, komprimierte Datei erstellt. Zuerst habe ich die PDF-Datei komprimiert:

bzip2 disclosure.pdf

Dann habe ich eine Textdatei (header.txt) mit folgendem Inhalt erstellt:

!/bin/sh
echo ""
echo "MyPackage v99.99 - extracting archive with bunzip2… please wait"
echo ""
SKIP=`awk '/^__ARCHIVE_FOLLOWS__/ { print NR + 1; exit 0; }' $0`
#Take the archive portion of this file and pipe it to bunzip2
tail +$SKIP $0 | bunzip2 > disclosure.pdf
exit 0
__ARCHIVE_FOLLOWS__

Anschließend habe ich beide Dateien (header.txt und disclosure.pdf.bzip2) zusammengefügt:

cat header.txt disclosure.pdf.bzip2 > disclosure.pdf.bzip2.sh

Danach muss ich der Datei nur noch Ausführungsrechte für alle Benutzer zuweisen:

chmod a+x disclosure.pdf.bzip2.sh

Um die Datei zu entpacken, gebe ich einfach Folgendes ein:

./disclosure.pdf.bzip2.sh

Natürlich muss das Programm „bunzip2“ auf dem System des Empfängers dieser Datei installiert sein; man kann den bzip2-Algorithmus problemlos durch einen anderen ersetzen, z. B. durch „tar“.