Rekursiv Tar Achive entpacken

OK, ich habe mal wieder ein kleines konkretes Problem für das ich eine kleine schnelle Lösung gebastelt hebe, die evtl. dem einen oder anderen das Leben ein wenig leichter machen kann. Dieses mal stehe ich vor dem Problem, dass ich eine beliebig tief verschachtelte Verzeichnisstruktur vor mir habe, in der unzählige tar Files abgelegt sind. Um die nun alle auf einmal an Ort und stelle zu entpacken habe ich ein kleines Script geschrieben, das genau diese Aufgabe erfüllt.

Erst habe ich ja noch gedacht, es gibt bestimmt irgendeine Option mit dem der tar Befehl das von sich aus macht, aber ich habe nichts gefunden. Das Ergebnis ist folgendes kleine Shell Script.

#!/bin/sh
# set -x

for i in `find . -name "*.tgz" -print`
do
cd `dirname $i`
tar -xvzf `basename $i`
cd -
done

Total easy und schnell gemacht. Während ich das Skript gerade laufen lasse habe ich noch Zeit einen kleinen Artikel im Blog zu schreiben und dann mache ich mich wieder daran, weiter zu entwickeln. Was es ist wird noch nicht verraten :-)

Michael Jentsch

Michael Jentsch arbeitet seit 2006 bei der Itellium Services GmbH als Entwickler und Software Architekt. Er ist spezialisiert auf Java basierte Web-Applikationen und E-Commerce. Neben dem Beruf interessiert er sich auch für Suchmaschinenoptimierung und ist engagiert in vielen Open Source Projekten im Web Umfeld. Sie erreichen ihn per E-Mail unter [email protected].

More Posts

Comments

  1. Ich kann ja bei so etwas immer nur schwer widerstehen… ;-)
    Hier der passende Einzeiler mit demselben Ergebnis:

    find /foobar -name “*.tgz” -execdir tar xvzf {} \;

    (-execdir führt die angegebene Aktion im Verzeichnis aus, in dem sich der aktuelle Treffer befindet.)

    • Michael Jentsch says:

      War ja klar, ich hatte gehofft, Du liest hier im Urlaub nicht mit :-) .
      Trotzdem schön, eine bessere Lösung zu haben. Die werde ich mir als alias einrichten.

«
facebook this
"));