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)
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
.
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.