Tar uma lista de arquivos que não existem

8

Estou executando um comando de um script como

tar -c -f ar.tar a b c d

onde b, c e d podem não existir e podem ser diretórios. As soluções que desenvolvi são canalizar a saída de ls -d para grep , emendá-la no comando tar ou ativar globs estendidos para @(a|b|c|d) .

Existe uma maneira mais simples de fazer isso? Eu estou no Debian Wheezy, que parece não ter um parâmetro --include .

    
por gidyn 13.11.2014 / 10:21

2 respostas

6

você pode tentar

 tar cf ar.tar $(ls a b c d )

onde

  • c para criar
  • f ar.tar especifica o arquivo tar

  • $(ls a b c d) irá listar para stdin quais arquivos estão realmente presentes (e dar erro para outros)

por 13.11.2014 / 11:18
1

Se está tudo bem em ter o caminho completo dos arquivos no arquivo tar você pode fazer:

tar -c -f ar.tar $(readlink -e a b c d)

A opção -e para readlink irá canalizar os nomes de arquivos existentes e ignorar silenciosamente quaisquer outros.

    
por 13.11.2014 / 11:23