Tengo un archivo que contiene una lista de archivos que quiero archivar con tar. Vamos a llamarlomylist.txt
Contiene:
file1.txt
file2.txt
...
file10.txt
¿Hay alguna manera de emitir el comando TAR que se toma mylist.txt
como entrada? Algo como
tar -cvf allfiles.tar -[someoption?] mylist.txt
Para que sea similar a como si emitiera este comando:
tar -cvf allfiles.tar file1.txt file2.txt file10.txt
-X
opción de exclusión sobrevive del antiguo comando tar de Unix, pero aparentemente -I (incluir) ¡no lo hice!man
páginas con unaEXAMPLES
sección, a pesar de ser una sección estándar . Consulte < unix.stackexchange.com/questions/306189/… >.Respuestas:
Si:
fuente
-L mylist.txt
en AIXSuponiendo GNU tar (ya que esto es Linux), la opción
-T
u--files-from
es lo que desea.fuente
También puede canalizar los nombres de archivo que pueden ser útiles:
fuente
Algunas versiones de tar, por ejemplo, las versiones predeterminadas en HP-UX (probé 11.11 y 11.31), no incluyen una opción de línea de comando para especificar una lista de archivos, por lo que una solución decente es hacer esto:
fuente
cat
), simplemente$(<mylist.txt)
.mylist.txt
es grandetar -T <(<mylist.txt)
. redundante como esta respuesta.En Solaris, puede usar la opción -I para leer los nombres de archivo que normalmente indicaría en la línea de comando desde un archivo. A diferencia de la línea de comando, esto puede crear archivos tar con cientos de miles de archivos (solo eso).
Entonces el ejemplo leería
fuente
Para mí en AIX, funcionó de la siguiente manera:
fuente