Se você quiser comparar apenas as listas de nomes de arquivos e diretórios, a opção -d
não é útil. Em vez disso, as listas ordenadas do diff de find
e tar -tf
fariam isso .
Começando com os nomes assumidos no exemplo original do OP:
$ tar xvf Documents.tar -C untarDocs
$ diff -r Documents untarDocs
aqui está um script sugerido para diferenciar os nomes dos arquivos:
#!/bin/sh
MYDIR=$(mktemp -d)
tar tf Documents.tar |sort >$MYDIR/from-tar
find Documents |sort >$MYDIR/from-dir
(cd $MYDIR && diff -r from-tar from-dir)
rm -rf $MYDIR
Isso pressupõe que Documents.tar
contenha o mesmo diretório "Documentos" de nível superior. Se isso não for uma boa suposição, as listas devem ser filtradas para remover o nome do diretório de nível superior. OP não indicou que isso seria um problema, no entanto.
Em qualquer caso, as listas devem ser classificadas, porque não há garantia de qual ordem os programas tar
e find
usam.
Eu usei mktemp
por causa do indício de que o OP está usando o GNU tar (o -d
opção ), o que torna provável no Linux.
É claro que não há tar POSIX para referência em relação a -d
. pax também não faz diferença.