Comando Unix para encontrar os arquivos em um diretório, mas não em outro?

0

O que é o comando unix para encontrar arquivos que estão em um diretório diretamente comprado e não em outro diretório? Eu só me importo com nomes de arquivos.

Obrigado.

    
por More Than Five 26.02.2013 / 23:11

2 respostas

0

Suponho que você queira fazer essa pesquisa em um diretório de nível superior. Em caso afirmativo, você pode usar a opção -path com find .

Por exemplo, dada a estrutura de diretórios abaixo

+---dir1/test1.txt
  |
  |--dir2/test1.txt

para encontrar arquivos correspondentes a 'test *' no uso dir1

find -path '*dir1*' -iname 'test*'
    
por 27.02.2013 / 02:06
0

Para comparar dois diretórios, você pode usar isto:

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)

Para fazer isso apenas de uma maneira e produzir uma lista de arquivos, tente isto:

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"

Para que isso funcione corretamente, nem $ dir1 nem $ dir2 devem incluir a barra final.

    
por 04.09.2017 / 14:00

Tags