Existem ferramentas Linux / Unix que encontram todos os arquivos em um diretório que não estão presentes em outro? Basicamente, estou procurando diff que funciona na saída de ls.
Scripts curtos e doces também são apreciados.
linux
command-line-interface
filesystems
Willi Ballenthin
fonte
fonte
diff dir1 dir2 | grep "Only"
Bater:
Compare apenas os nomes dos arquivos - não o conteúdo dos arquivos.
fonte
ls
, use emfind
vez disso!Como as pessoas lhe disseram aqui, você pode usar DIFF em várias variações de uso. Ou você apenas usa
dirdiff
, que serve para o que você está tentando! :-)Mas se você deseja manter alguns diretórios sincronizados, deve dar uma olhada
rsync
.Saudações
fonte
Se você deseja fazer isso através de todos os subdiretórios também, uma boa maneira de fazer isso é:
Eu prefiro usar breve, mas você pode deixar isso de fora, se quiser.
fonte
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; done
fonte
Isso funciona..
fonte
não testado:
fonte
Dennis Williamson teve uma boa resposta , mas eu precisava fazer isso recursivamente. O GNU findutils 4.7.0 não classifica sua saída, então aqui está o que eu usei
Para fazer isso apenas de uma maneira e produzir uma lista de arquivos, usei o seguinte:
Para que isso funcione corretamente, nem $ dir1 nem $ dir2 devem incluir a barra final.
fonte