2016-04-11 9 views
0

Ich versuche, 100 Verzeichnisse in einem bestimmten Verzeichnis zu einer TAR-Datei zu tarieren, aber ich möchte nicht mehr als 100 dieser Verzeichnisse zu der Datei hinzufügen. Zum Beispiel ist die derzeitige Struktur der Verzeichnisse wie soTar 100 Verzeichnisse im aktuellen Verzeichnis

.../v0.0/category_name/edf/001/00000010/s01_2012_03_01 

Jedes dieser Verzeichnisse eine unterschiedliche Anzahl von Dateien enthält, und ich möchte diese auch in dem Teer enthalten sein. Was ich möchte, ist es, Tar 100 Verzeichnisse mit verschiedenen ../00000010/.. Teile des Pfades. Am Ende könnte es eine tar-Datei erstellen mit folgenden Struktur am Ende:

.../v0.0/category_name/edf/001/00000010/s01_2012_03_01/file.txt 
.../v0.0/category_name/edf/001/00000010/s01_2012_03_01/file2.txt 
.../v0.0/category_name/edf/001/00000010/s02_2012_03_01/file.txt 
.../v0.0/category_name/edf/001/00000015/s01_2012_03_01/file.txt 
.../v0.0/category_name/edf/004/00000100/s01_2012_03_01/file.txt 

Betrachten Sie den 00000010 Teil des Weges des Verzeichnis, das einen „Patient“ darstellt. Alle Dateien des Patienten, die sich in seinem Verzeichnis befinden, sollten in den tar enthalten sein. Es sollten 100 verschiedene Patienten in die Datei geteert werden. Wenn also der erste Patient 00000001 war und der hundertste Patient 00000100 war, sah die Struktur vielleicht so aus.

.../v0.0/category_name/edf/001/00000001/s01_2012_03_01/file.txt 
.../v0.0/category_name/edf/001/00000001/s01_2012_03_01/file2.txt 
.../v0.0/category_name/edf/001/00000001/s02_2012_03_01/file.txt 
.../v0.0/category_name/edf/001/00000002/s01_2012_03_01/file.txt 
.../v0.0/category_name/edf/004/00000003/s01_2012_03_01/file.txt 
... 
.../v0.0/category_name/edf/001/00000100/s01_2012_03_01/file.txt 
.../v0.0/category_name/edf/004/00000100/s02_2012_03_01/file.txt 

Dies ist nur ein Beispiel, und die Patientenverzeichnisse werden nicht genau so nummeriert.

+0

tun Sie nur die ersten 100 dirs teeren wollen? – MaxU

+0

Sie möchten 100 * eindeutige * Pfadkomponenten an diesem Ort? Oder bis zu 100 Dateien mit der * gleichen * Pfadkomponente an diesem Ort? Interessiert es dich * welche * 100 Einträge bekommst du wenn es mehr als 100 gibt? Ist es wichtig, dass einige dieser Verzeichnisse eine Komponente von '001' haben und einige eine Komponente von' 004'? –

+0

Sorry, das habe ich jetzt behoben. –

Antwort

0

wenn ich Ihre Frage richtig verstanden habe, können Sie es auf diese Weise tun:

find . -type d | head -100 | tar czvf dirs.tgz -T - 
0

erstellen Liste von Patientenverzeichnisse:

find -maxdepth 1 . -type d > dirs 

Split in Stücke von 100:

split -l 100 -d dirs chunk. 

Archivverzeichnisse in jedem Chunk:

for f in chunk.* ; do tar -czvf ${f##chunk.}.tar.gz `cat $f` ; done 

Sie werden mit Archiven am Ende genannt 00.tar.gz, 01.tar.gz, ... mit jeweils 100 Verzeichnisse

Verwandte Themen