Como depurar / verificar '--exclude-from' arquivo correspondente para 'tar'?

1

O comando tar tem uma opção --exclude-from :

   -X, --exclude-from=FILE
          Exclude files matching patterns listed in FILE.

Como posso listar todos os arquivos ou raízes de pastas completamente ignoradas, que correspondem a padrões em FILE .

Estou fazendo um script para fazer backup do meu diretório pessoal e não gostaria de ignorar acidentalmente algo importante.

    
por kravemir 04.06.2017 / 09:21

3 respostas

1

Alguns comandos tar otimizam o que fazem se você estiver com o tarring /dev/null , por exemplo

tar cvf /dev/null . >/tmp/a

criará uma lista de todos os arquivos em . sem realmente ler nenhum dado. Na minha casa 10G levou 3 segundos, quase o mesmo que um find .

Assim, você pode fazer o que foi mencionado acima e, em seguida, a mesma coisa com sua lista de exclusão em /tmp/b e, em seguida, fazer um diff entre eles para ver o que você perde.

Como alternativa, canalize cada saída por meio de sort e, em seguida, use comm -3 /tmp/a /tmp/b para obter apenas os arquivos excluídos.

    
por 04.06.2017 / 14:05
0
while read -r pattern; do
    printf 'Pattern: "%s"\n' "$pattern"
    echo 'Matches:'
    find . -path "$pattern" -print
done <patterns

Isso levará cada padrão do arquivo patterns e informará quais nomes no diretório atual correspondem a ele.

    
por 04.06.2017 / 10:27
-1

Pode ser complicado como o modo tar e encontrar padrões de correspondência não são os mesmos. Mas talvez você esteja procurando por algo assim:

for pattern in $(cat FILE)
do
    find $HOME -path "*$pattern*"
done
    
por 04.06.2017 / 10:13

Tags