Você também terá que excluir diretórios. Se não estiver excluindo diretórios, tar
receberá /var
(e outros diretórios) como argumento e continuará arquivando-os com todo o conteúdo (soquetes ou não). Além disso, ele adicionará várias cópias de muitos arquivos devido ao mesmo motivo ( /var
inclui /var/log/messages
e o mesmo /var/log
).
find /var ! -type s ! -type d -exec tar -r -f archive.tar {} +
Ou, se você quiser apenas arquivos regulares e links simbólicos:
find /var '(' -type f -o -type l ')' -exec tar -r -f archive.tar {} +
Eu escolhi usar -exec ... {} +
aqui em vez de -exec ... {} ';'
, já que provavelmente queremos chamar tar
o menor número de vezes possível com o maior número de argumentos possível de cada vez.