bash
alternativa para a resposta de Stephane:
diff -u <(cd dir1 && du -a | sort -k2) <(cd dir2 && du -a | sort -k2)
Essa e a resposta de Stephane assumem que não há novas linhas em seus nomes de arquivos.
Duas pastas diferentes, possuem o mesmo nome, mas possuem tamanho de arquivo diferente. Existe algum comando linux que possa comparar duas pastas e me dizer o diff no tamanho do arquivo ao mesmo tempo?
bash
alternativa para a resposta de Stephane:
diff -u <(cd dir1 && du -a | sort -k2) <(cd dir2 && du -a | sort -k2)
Essa e a resposta de Stephane assumem que não há novas linhas em seus nomes de arquivos.
Com zsh
e vim
, você poderia fazer:
vim -d =(cd dir1 && du -a | sort -k2) =(cd dir2 && du -a | sort -k2)
(você pode substituir vim -d
por diff -u
ou kompare
ou seu utilitário de comparação de texto preferido).
A forma =(...)
de substituição de comandos é igual à <(...)
one encontrada em ksh, zsh e bash, com a exceção de que usa um arquivo temporário em vez de um canal para poder trabalhar com comandos que esperam um arquivo regular (como vim
). Para comandos que não têm essa limitação (como diff
), você pode usar <(...)
.
O diretório é apenas um mapeamento entre nomes de arquivos e inodes, não há "arquivos no diretório". Você pode pedir o tamanho dos arquivos que podem ser acessados pelo diretório pelo comando du(1)
). Se você está preocupado com o tamanho do diretório em si (como relatado por ls -ld directory
), isso inclui nomes de arquivos atuais, espaço que foi usado por arquivos apagados, preenchimento e burocracia.
Se você quiser saber se os arquivos alcançáveis têm os mesmos nomes / conteúdos, cmp(1)
compara dois arquivos. Ou diff(1)
(com o -r
flag) compara os diretórios de forma recursiva (embora seja voltado para texto).
Tags command-line files linux