Ich habe eine Datei mit einer Liste von Dateien, die ich mit tar archivieren möchte. Nennen wir esmylist.txt
Es beinhaltet:
file1.txt
file2.txt
...
file10.txt
Gibt es eine Möglichkeit, einen TAR-Befehl auszugeben, der mylist.txt
als Eingabe verwendet wird? Etwas wie
tar -cvf allfiles.tar -[someoption?] mylist.txt
Damit es ähnlich ist, als würde ich diesen Befehl ausgeben:
tar -cvf allfiles.tar file1.txt file2.txt file10.txt
-X
Ausschlussoption bleibt vom alten Unix-Tar-Befehl erhalten, aber anscheinend hat -I (include) dies nicht getan!man
Seiten mit einemEXAMPLES
Abschnitt, obwohl es sich um einen Standardabschnitt handelt . Siehe < unix.stackexchange.com/questions/306189/… >.Antworten:
Ja:
quelle
-L mylist.txt
auf AIXAngenommen, GNU tar (da dies Linux ist), ist die Option
-T
oder--files-from
genau das, was Sie wollen.quelle
Sie können auch die Dateinamen eingeben, die nützlich sein könnten:
quelle
Einige Versionen von tar, z. B. die Standardversionen unter HP-UX (ich habe 11.11 und 11.31 getestet), enthalten keine Befehlszeilenoption zum Angeben einer Dateiliste. Daher sollten Sie Folgendes umgehen:
quelle
cat
), einfach$(<mylist.txt)
.mylist.txt
groß isttar -T <(<mylist.txt)
. überflüssig wie diese Antwort.Unter Solaris können Sie die Option -I verwenden, um die Dateinamen, die Sie normalerweise in der Befehlszeile angeben, aus einer Datei zu lesen. Im Gegensatz zur Befehlszeile können hierdurch Tar-Archive mit Hunderttausenden von Dateien erstellt werden (haben Sie das gerade getan).
Das Beispiel würde also lauten
quelle
Für mich unter AIX hat es wie folgt funktioniert:
quelle