2016-07-24 21 views
0

Ich habe einen Befehl ausgeführt, um eine Datei von 2 TB in Dateien von je 50 GB zu teilen.Verbinde geteilte Dateien und Dekomprimieren sie denselben Befehl [LINUX]

... | split -b 50G

Jetzt muss ich sie verbinden und dekomprimieren, auf dem gleichen Befehl. Weil ich nicht genug freien Speicherplatz habe, um beide zu haben.

To join: cat part-* > big_file.gz 

To uncompress: tar -xvf big_file.gz 

Wie könnte ich diese Befehle oben in der gleichen Zeile ausführen?

+1

Willkommen bei Paketüberfluss. Bitte beachten Sie, dass Stackoverflow-Fragen mit der Programmierung zusammenhängen müssen. Bitte lesen Sie die [Hilfe/zum Thema]. Die Frage mag auf anderen SE-Sites wie [unix.se] angebracht sein, aber prüfen Sie zuerst ihre Hilfe, bevor Sie dort eine Migration beantragen. – kaylum

+0

gewählt, um auch auf unix.stackexchange.com zu verschieben, um eine 'gz'd Datei zu bekommen, müssen Sie' gzip -c part- *> big_file.gz' machen. Wenn Ihre Originaldatei ziped wurde, bevor Sie versucht haben, sie zu teilen, glaube ich nicht, dass sie so funktioniert, wie Sie es vorhaben. Führen Sie kleine Tests durch, um zu sehen, dass Ihre Ideen funktionieren, bevor Sie Zeit und Ressourcen für eine nicht getestete Idee aufwenden. Viel Glück. – shellter

Antwort

0

Um mehrere Befehle in bash zu verwenden; als ein Separator, wie:

Katze kofinanzieren *> big_file.gz; tar -xvf big_file.gz

Sie diese auch mit einigen bash Schleife Befehle wie während kombinieren, für, etc

+0

Ja .. aber durch Ausführen des obigen Befehls wird die Datei 'big_file.gz; tar' tatsächlich erzeugt ... also' big_file.gz; tar' + die unkomprimierte 'big_file.gz; tar' verdoppelt meine Festplattengröße und Ich habe nicht genug ... Ich möchte die CAT + TAR auf dem gleichen Befehl anrufen, also werde ich nicht zwei Kopien davon haben .. verstanden? –