você pode tentar
tar cf ar.tar $(ls a b c d )
onde
-
cpara criar -
f ar.tarespecifica 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.