Linux-Shell: ZIP in TAR konvertieren

English Deutsch

Problem

Du hast ein ZIP-Archiv und möchtest es automatisch in TAR konvertieren, wobei die ursprüngliche Verzeichnisstruktur erhalten bleibt.

Lösung

Verwende dieses Skript (Kommentare inline).

ziptotar.sh
#!/bin/bash
# Verwendung: ziptotar.sh <ZIP-Name>
tmpdir=`mktemp -d`
#ZIP in das temporäre Verzeichnis kopieren
cp "$1" $tmpdir/
#Entpacken
(cd $tmpdir && unzip -q "$1")
#Original-ZIP-Datei entfernen, da sie nicht ins TAR-Archiv soll
rm "$tmpdir/$1"
#Dateien zu TAR-Archiv packen
outfilename=$(echo "$1" | rev | cut -d. -f2- | rev).tar
(cd $tmpdir && tar cf "$outfilename" *)
mv "$tmpdir/$outfilename" .
#Temporäres Verzeichnis entfernen
rm -rf $tmpdir
#Ausgeben, was getan wurde
echo "$1 wurde nach $outfilename konvertiert"

Check out similar posts by category: Shell