2012-04-01 6 views
0

Das folgende wird die Dateien im Verzeichnis/root/extrahieren. Aber es erstellt auch die übergeordneten Verzeichnisse unter root. Was ich brauche, ist, dass die Dateien genau unter Stammordner sein sollten und nicht in/root/data/mysql/...tar alle Dateien in ein Verzeichnis

# tar -xvf company_raw_2012-02-22.tgz --directory=/root/ 
data/mysql/company_raw/data_archive_r_20120222.MYD 
data/mysql/company_raw/data_archive_r_20120222.MYI 
data/mysql/company_raw/data_archive_r_20120222.frm 

Wenn das nicht möglich ist, wie schreibe ich ein Programm, um diese Dateien zu bewegen der erforderliche Ordner?

Ich habe Folgendes versucht und es funktioniert.

--strip-components=3 

Aber ich weiß nicht, wie viele Ordner dort sein werden. Also kann sich die Zahl 3 ändern.

Antwort

2

Extrahieren Sie alles in das temporäre Verzeichnis mit dem vollständigen Pfad und gehen Sie dann einfach die Dateien zum gewünschten Ziel bewegen?

destdir=/root 
tmpdir=/root/tmp 
rm -rf $tmpdir 
mkdir $tmpdir 
tar xf archive.tar.gz -C $tmpdir 
find -H $tmpdir -type f -exec mv '{}' $destdir \; 
Verwandte Themen