Kommandozeilen Archiv Manager / Extrahierer

15

Ich vergesse immer wieder die entsprechenden Extraktionsbefehle für jedes Komprimierungsformat.

Ich dachte also darüber nach, ein Skript zu schreiben, das lediglich Dateierweiterungen dem entsprechenden Befehl zum Extrahieren zuordnet. Aber ich denke so etwas gibt es schon, ich kann es einfach nicht finden.

Ich würde mich über so etwas wie File-Roller freuen, aber File-Roller ist ein GUI-Tool.

Brillout
quelle

Antworten:

11

Ein paar Vorschläge:

unp

unp (im Software-Center erhältlich) ist ein kleines Perl-Modul, das eine Vielzahl von Archiven in den aktuellen Ordner dekomprimiert. Verwenden Sie unp -sfür die unterstützten Archivformate

Standardmäßig werden Archive in den aktuellen Ordner dekomprimiert.

Feilenrolle

file-roller selbst kann von der Kommandozeile aus gestartet werden. Verwenden Sie file-roller -h <archive name>diese Option, um das Archiv zu dekomprimieren.

fossfreedom
quelle
11

Von hier aus , um Ihre .bashrc einzutragen:

extract () {
   if [ -f $1 ] ; then
      case $1 in
         *.tar.bz2)   tar xjf $1      ;;
         *.tar.gz)   tar xzf $1      ;;
         *.bz2)      bunzip2 $1      ;;
         *.rar)      rar x $1      ;;
         *.gz)      gunzip $1      ;;
         *.tar)      tar xf $1      ;;
         *.tbz2)      tar xjf $1      ;;
         *.tgz)      tar xzf $1      ;;
         *.zip)      unzip $1      ;;
         *.Z)      uncompress $1   ;;
         *)         echo "'$1' cannot be extracted via extract()" ;;
      esac
   else
      echo "'$1' is not a valid file"
   fi
} 
schäbig
quelle
Fügen Sie ein Beispiel für die Verwendung hinzu?
MiniGod
4
Entpacke file.zip
frabjous
4

Was wurde bisher noch nicht erwähnt ist das Schweizer Taschenmesser der Befehlszeilenprogramme: atool; Es ist in den Repositorys verfügbar: Klicken Sie auf atool Installieren Sie atool oder führen Sie es aus sudo apt-get install atool.

atoolist eigentlich ein Skript mit verschiedenen Funktionen wie aunpack, apack, als, acat, adiff und arepack. Die wahrscheinlich häufigste Verwendung des Programms ist das Extrahieren von Archiven mit dem Befehl aunpack. Es gibt einige interessante und nützliche Optionen, aber die grundlegende Methode zum Extrahieren der meisten Archive besteht darin, nur Folgendes auszuführen:

aunpack myarchive.tar

Die Unterstützung für die Archivformate tar, 7z, zip, jar, rar, ar, lha und viele andere sowie deren Variationen wird durch Eingabe man atoolim Terminal oder durch Online- Anzeige der Ubuntu-Manpage dokumentiert .

Das Nützliche ist also, dass Sie, wenn Sie ein tar-, zip- und gz-Archiv im selben Ordner haben, nur ausführen müssen, um sie alle zu extrahieren

aunpack -e *

Alle unterstützten Archive werden entpackt, wobei die Ordnerstruktur beibehalten wird. Wenn der Name des resultierenden Ordners bereits existiert, wird er nicht überschrieben, sondern erhält einen eindeutigen Namen wie unpack-5645.

Oder wenn Sie nur einen Archivtyp auswählen und alle entpacken möchten, verwenden Sie stattdessen

aunpack -e *.zip

Wenn Sie Dateien benötigen, die direkt in ein bestimmtes Verzeichnis entpackt wurden, wobei nur die Verzeichnisstruktur des Unterordners beibehalten wird (falls diese beendet wird), geben Sie beispielsweise Folgendes ein:

aunpack -e Scripts11.zip -X /home/mike/Videos

Wenn bereits eine Datei mit demselben Namen vorhanden ist, werden Sie aufgefordert, eine Aktion umzubenennen oder zu überschreiben, es sei denn, Sie haben die Option force ( -f) im Befehl angegeben.

Wie die Manpage feststellt, extrahiert aunpack zuerst

Dateien in ein eindeutiges (temporäres) Verzeichnis kopieren und den Inhalt dann nach Möglichkeit zurückschieben. Dies verhindert auch, dass lokale Dateien versehentlich überschrieben werden.


Mit den anderen Tools sind andere Aktionen möglich, wie in der Manpage erwähnt :

  • apack erstellt Archive aus den angegebenen Dateien oder Ordnern oder aus der angegebenen stdin
  • Als listet Dateien innerhalb des angegebenen Archivs auf
  • Mit acat kann man Archivdateien nach stdout extrahieren
  • Mit adiff können Sie die beiden angegebenen Archive vergleichen
  • Mit arepack können Sie ein Archivformat in ein anderes konvertieren, indem Sie den Inhalt des ursprünglichen Archivs in einen temporären Ordner legen und dann das neue neu packen.

Es gibt viele weitere nützliche Optionen für alle Dienstprogramme, aber wahrscheinlich wird die am häufigsten verwendete Option aunpack sein, da es so einfach ist, mehrere verschiedene Archive zu extrahieren. Es ist großartig, nur einen Befehl ausgeben und mehrere verschiedene Archivformate extrahieren zu können, ohne die verschiedenen Befehle für tar, zip usw. verwenden zu müssen.

In diesem Online-Magazin finden Sie einen aktuellen Artikel, der beschreibt, wie Sie die atool-Funktionen in die benutzerdefinierten Aktionen Ihres Dateimanagers wie Thunar integrieren .

Gemeinschaft
quelle
3

Es gibt ein Tool namens dtrx- die richtige Extraktion durchführen.

Installieren Sie es aus den Ubuntu-Repositories und führen Sie es aus dtrx somefile.someext. Das Tool fragt den Benutzer interaktiv nach verschachtelten Archiven (zip oder zip-Dateien) ab.

dtrx ist eine raffinierte Version von Frabjous 'Extrakt .

Jan
quelle
0

Mit welchen Formaten müssen Sie umgehen? Eine Möglichkeit besteht darin, ein Shell-Skript zu schreiben, das die Erweiterungen seines Arguments überprüft. Oder, wenn Sie sich nur mit Variationen von .tar. * tar -xfBefassen , werden die meisten davon automatisch erledigt. (Ich erinnere mich also nur an das und unzipwas für alles ausreicht, was mir sonst begegnet.)

Ben Kraft
quelle