Ich habe ein Verzeichnis, das ungefähr 800 .tgz-Archive enthält, von denen jedes ungefähr 10 Dateien enthält. Ich möchte eigentlich jedes Archiv in ein gleichnamiges Verzeichnis umwandeln. Gibt es dazu einen einfachen einzeiligen Befehl oder sollte ich ein Skript schreiben?
Ich denke, Sie müssen das Skript schreiben. Sie können das Verzeichnis angeben, in dem sich der Extrakt befindet, indem Sie die Option tar -C verwenden.
Das folgende Skript geht davon aus, dass die Verzeichnisse nicht existieren und erstellt werden müssen. Wenn die Verzeichnisse vorhanden sind, funktioniert das Skript weiterhin - das mkdir schlägt einfach fehl.
tar -xvzf archive.tar.gx -C archive_dir
z.B.
for a in *.tar.gz
do
a_dir=`expr $a : '\(.*\).tar.gz'`
mkdir $a_dir 2>/dev/null
tar -xvzf $a -C $a_dir
done
Erstellen Sie einen Ordner, in den Sie wie folgt extrahieren möchten mkdir archive
Und übergeben Sie den Ordnernamen mit -C beim Extrahieren tar -xvf archive.Zip -C archive