Comparando dois diretórios separados para diretórios e arquivos dentro

1

Para comparar a estrutura por meio de uma iteração em cada pasta, tentei listar a saída (para um arquivo de texto) de todos os diretórios e arquivos presentes:

diff --brief -Nr dir1/ dir2/ > out.txt

A saída que obtive é apenas pela diferença nos arquivos. Eu quero a saída que irá iterar através das pastas e especificar se a pasta existe em outro diretório. Isso deve ser válido para a estrutura completa, arquivos e pastas.

cat out.txt :

Files abc/def/xy.txt and pqr/def/xy.txt differ

Files abc/ooo/q.txt and pqr/ooo/q.txt differ

Files abc/ooo/t.txt and pqr/ooo/t.txt differ

    
por Tanmay 22.08.2018 / 16:46

2 respostas

1

Suponha duas árvores diretory: dir_one e dir_two . Então, assumindo o bash:

Para listar tudo o que está em ambos dir_one e dir_two :

comm -12 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)

Para listar tudo o que está presente em dir_one , mas não em dir_two :

comm -23 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)

E, por último, para listar tudo o que é não em dir_one , mas está presente em dir_two :

comm -13 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
    
por 22.08.2018 / 17:20
0

I want the output which will iterate through the folders and specify if the folder exists in another directory

Considere estes diretórios / arquivos:

tree dir1/ dir2/
dir1/
|-- bar
|-- foo
'-- subdir_dir1
dir2/
'-- foo

Esta variante diff não atende às suas necessidades?

diff -rq dir1 dir2
Only in dir1: bar
Only in dir1: subdir_dir1
    
por 22.08.2018 / 18:04