Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Qual travessal calcula o tamanho total de cada diretório no sistema UNIX?
Nenhum dos métodos de travessia do Unix padrão (como `find`,` ls` ou `árvore`) calcular diretamente o tamanho total de cada diretório em um único comando. Eles normalmente mostram o tamanho dos arquivos em um diretório, mas não a soma recursiva dos tamanhos de todos os arquivos e subdiretórios nesse diretório.

Para calcular o tamanho total de cada diretório, você normalmente usaria `du` (uso de disco). No entanto, `du` não inerentemente" atravessa "o sentido de visitar cada diretório e imprimir seu nome e tamanho separadamente. Ele relata o tamanho de cada diretório, *incluindo seus subdiretos *, que é sutilmente diferente de uma travessia que listaria explicitamente cada diretório e seu tamanho independentemente de seus filhos.

Veja como você pode obter uma travessia de diretório que mostra o tamanho total de cada diretório:

usando `du` com` find`:

Isso combina `encontre` para o Traversal e` du` para cálculo de tamanho. `find` lista cada diretório, e` Xargs` alimenta esses diretórios para `du ':

`` `BASH
encontrar . -Type d -print0 | Xargs -0 -i {} du -sh {}
`` `

* `encontre. -Type d -Print0`:Isso encontra todos os diretórios (`-Type d`) começando no diretório atual (`. ') e imprime seus nomes separados por caracteres nulos (`-Print0`). Os caracteres nulos são cruciais para lidar com nomes de arquivos com espaços ou caracteres especiais.
* `XARGS -0 -i {} du -sh {}`:Isso leva os nomes de arquivos separados nulos de `find` e roda` du -sh` em cada um. `-0` diz a` xargs` para esperar uma entrada separada por nulo, `-i {}` define `{}` como um espaço reservado para o nome do arquivo, `du -sh` mostra o tamanho em um formato legível pelo ser humano (`-h) e apenas o resumo (não o tamanho de cada arquivo)


Este é o mais próximo que você chegará de uma travessia que explicitamente fornece o tamanho de cada diretório. O comando `du` em si não é estritamente um algoritmo de travessia, mas quando usado com` find`, a combinação executa a ação desejada.

Anterior :

Próximo :
  Os artigos relacionados
·Quais são os componentes de um sistema de arquivos UNI…
·Unix Audit Checklist 
·Qual comando um usuário digitaria na linha para descob…
·O que é o uso de -exec no comando find Unix? 
·Como você faz um novo comando no Unix? 
·Como você imprime o diretório atual no programa shell…
·Qual é o papel de um shell no Linux? 
·Como alterar VIM para UNIX Formato 
·Qual é a função do intérprete de comando? 
·Exibir uma lista de todos os usuários do seu sistema q…
  Artigos em destaque
·Como excluir um arquivo no Assistente de impressão de …
·Por que eu tenho tantas duração iexplore.exe 
·Como remover arquivos duplicados em um Mac 
·Alterar o sistema operacional Windows XP 
·Como fazer o download do Microsoft PowerPoint 2008 
·Como reinstalar um carregador Grub 
·Como usar um Toshiba Recovery Disc 
·Como copiar Drivers do Windows XP em um Dell 
·Lista de Doc prompts de comando 
·Como excluir Perflib 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados