J'ai un fichier qui contient la liste des fichiers que je veux archiver avec tar. Appelons çamylist.txt
Il contient:
file1.txt
file2.txt
...
file10.txt
Existe-t-il un moyen d'émettre une commande TAR qui prend mylist.txt
comme entrée? Quelque chose comme
tar -cvf allfiles.tar -[someoption?] mylist.txt
Pour que ce soit comme si j'émettais cette commande:
tar -cvf allfiles.tar file1.txt file2.txt file10.txt
-X
insérer . L' option d'exclusion survit de l'ancienne commande tar d'Unix, mais apparemment -I (include) ne l'a pas fait!man
pages avec uneEXAMPLES
section, bien qu'il s'agisse d'une section standard . Voir < unix.stackexchange.com/questions/306189/... >.Réponses:
Oui:
la source
-L mylist.txt
sur AIXEn supposant que GNU tar (car c'est Linux), l' option
-T
ou--files-from
est ce que vous voulez.la source
Vous pouvez également diriger les noms de fichiers qui pourraient être utiles:
la source
Certaines versions de tar, par exemple, les versions par défaut sur HP-UX (j'ai testé 11.11 et 11.31), n'incluent pas d'option de ligne de commande pour spécifier une liste de fichiers, donc une solution de contournement décente est de faire ceci:
la source
cat
), simplement$(<mylist.txt)
.mylist.txt
est grandetar -T <(<mylist.txt)
. redondant comme cette réponse.Sous Solaris, vous pouvez utiliser l'option -I pour lire les noms de fichiers que vous indiqueriez normalement sur la ligne de commande à partir d'un fichier. Contrairement à la ligne de commande, cela peut créer des archives tar avec des centaines de milliers de fichiers (c'est ce que j'ai fait).
Donc l'exemple lirait
la source
Pour moi sur AIX, cela a fonctionné comme suit:
la source