Observe que o comando padrão (POSIX / Unix) para criar um arquivo tar
é pax
. pax
combina os comandos tradicionais cpio
e tar
.
Para criar um arquivo tar, use o modo de gravação:
pax -w < abc.txt > allfiles.tar
Para copiar, use o modo de cópia:
pax -rw < abc.txt Folder/
Observe que ele recria a estrutura de diretórios em Folder
. Se você quiser achatar, você poderia fazer:
pax -rws '|.*/||' < abc.txt Folder/
(consulte a man page se você deseja copiar permissões ou outros atributos também. pax
espera um arquivo por linha, o que significa que arquivos cujo nome contém caracteres de nova linha não podem ser copiados dessa forma, alguns pax
implementações suportam um -0
para permitir uma lista de arquivos delimitados por NUL
).
com cpio
:
cpio -pd < abc.txt Folder/
Com o GNU tar
:
tar -cf - -T abc.txt | (cd Folder && tar xf -)
Outra opção para permitir qualquer caractere em nomes de arquivos é (com GNU cp
):
xargs cp -t Folder < abc.txt
(que achata os diretórios).
xargs
espera uma lista separada em branco (espaço, tabulação, nova linha), quando você pode escapar desses separadores com contrabarra, aspas simples ou duplas. Então você pode ter uma lista como:
"file with space"
other-file
'file with "quote" and
newline'