Duas maneiras - dois resultados diferentes

0

Eu executei dois comandos separados, cada um produzindo um número diferente. Alguém pode me ajudar a descobrir o porquê?

find -type d -name *log* | du -hcs

find . -type d -name '*log*' -print0 | xargs -0 du -hcs
    
por Tony 14.03.2014 / 17:55

1 resposta

0

Tenho certeza de que o (s) downvoter (s) pensou que a maneira de descobrir por que

man du
e se perguntou por que você não leu o manual. Ironicamente, embora isso seja verdade para os BSDs, nas distribuições Linux esta não é a maneira de descobrir, porque a página de manual do GNU está perdendo algumas coisas bastante básicas. Usuários Linux precisam rodar

info coreutils du
para ver a documentação com uma frase muito importante em.

É a segunda frase (terceira no OpenBSD) da página de manual para o comando BSD du .

Assim, mesmo que seu curinga - em seu comando, em vez da versão corrigida que foi dada a você em uma resposta - seja (possivelmente) expandido incorretamente em seu comando find , isso não causa um único achado diferença. Qualquer que seja seu comando find grava em sua saída padrão, ele é totalmente ignorado pelo comando du .

A partir do manual, que afirma explicitamente o que está acontecendo, combinado com o que já foi declarado nessa resposta em seu terceiro ponto, deve ser incrivelmente óbvio por que você está vendo comportamentos e resultados diferentes entre o seu comando e o corrigido. Prepare-se para se chutar. ☺

Leitura adicional

  • du . MacOS 10 páginas de manual. Corporação da Apple.
  • du . Páginas de manual do FreeBSD 9.2 . 2012-11-04.
  • du . NetBSD 6.1.3 páginas de manual . 2006-09-24.
  • du . páginas de manual do OpenBSD 5.4 . 2014-02-14.
  • du . Páginas de manual do DragonFly BSD 3.7 . 1994-04-01.
por 15.03.2014 / 00:16