Como encontrar diretórios ausentes entre duas estruturas de disco?
- Digamos que o Disco A tenha dir
A/
,B/
,C/
,D/
. (cópia mais recente) - Digamos que o disco B tenha dir
A/
,B/
,D/
,E/
. (cópia mais antiga)
Quero descobrir quais diretórios estão faltando na cópia mais recente em comparação com a cópia mais antiga.
Resultados: "Dir E".
Como posso fazer isso? Não quero nenhum relatório sobre arquivos.
Isso pode criar apenas os diretórios ausentes de um destino específico:
find -type d -exec mkdir -p "/mnt/pics/Albums/{}" \;
ATUALIZAÇÃO: O artigo sugerido na minha pergunta era sobre conteúdo e não sobre pastas. Além disso, não foi apresentada uma solução clara como resposta de "diff -rq path1 path2".
diff
permite comparar o conteúdo do diretório. Use-r
para percorrer subdiretórios recursivamente e-q
apenas para relatar diferenças:Por exemplo:
Observe que isso também compara arquivos com conteúdos idênticos!
Uma ferramenta gráfica bastante confortável é
meld
. Está disponível nos repositórios de muitas distribuições Linux.Você pode simplesmente fornecer os caminhos de diretório que deseja comparar, como em
Ele mostrará uma visualização em árvore dividida indicando quais arquivos/diretórios estão presentes apenas em um dos caminhos e, no caso de arquivos presentes em ambos os caminhos, qual dos dois possui um carimbo de data/hora mais recente.
Com
bash
, você pode usar:Isso listará recursivamente os diretórios em
dir1
edir2
, em ordem alfabética, e comparará essas listas comdiff
.