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
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.)
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.