Eu tenho um arquivo que contém a lista de arquivos que eu quero arquivar com o tar. Vamos chamá-lomylist.txt
Contém:
file1.txt
file2.txt
...
file10.txt
Existe uma maneira de emitir o comando TAR que usa mylist.txt
como entrada? Algo como
tar -cvf allfiles.tar -[someoption?] mylist.txt
Para que seja semelhante como se eu emitisse este comando:
tar -cvf allfiles.tar file1.txt file2.txt file10.txt
-X
opção de exclusão sobrevive do antigo comando tar do Unix, mas aparentemente -I (include) não!man
páginas com umaEXAMPLES
seção, apesar de ser uma seção padrão . Consulte < unix.stackexchange.com/questions/306189/… >.Respostas:
Sim:
fonte
-L mylist.txt
no AIXSupondo o tar GNU (como este é o Linux), a opção
-T
ou--files-from
é o que você deseja.fonte
Você também pode inserir os nomes dos arquivos que podem ser úteis:
fonte
Algumas versões do tar, por exemplo, as versões padrão no HP-UX (eu testei 11.11 e 11.31), não incluem uma opção de linha de comando para especificar uma lista de arquivos, portanto, uma solução alternativa decente é fazer isso:
fonte
cat
), simplesmente$(<mylist.txt)
.mylist.txt
é grandetar -T <(<mylist.txt)
. redundante como esta resposta.No Solaris, você pode usar a opção -I para ler os nomes de arquivos que você normalmente indicaria na linha de comando de um arquivo. Em contraste com a linha de comando, isso pode criar arquivos tar com centenas de milhares de arquivos (apenas isso).
Então o exemplo seria
fonte
Para mim, no AIX, funcionou da seguinte maneira:
fonte