A 'du' lista todos os arquivos em um sistema? [fechadas]

0

Será que du / list todos os arquivos? Existe uma maneira melhor?

    
por tjt263 16.08.2016 / 07:04

4 respostas

2

Se o objetivo é listar todos os arquivos / pastas no sistema de arquivos, você pode usar ls com a opção recursiva -R

# ls -R /

Se você está tentando filtrar os arquivos, digamos, usando tamanho, faça

# find / -type f -size +10c 

Os comandos acima fornecem os arquivos (a opção -type f ) que são maiores que 10 bytes (a opção c ) em tamanho.

    
por 16.08.2016 / 07:27
1

Tente isto:

du -sah /

Isso significa:
" S ummariza A ll os arquivos e pastas e, por favor, exibe em uma saída legível H uman"

Independentemente disso, você pode preferir usar o comando 'df'. É mais rápido e lista a saída por dispositivos, que é provavelmente a informação mais relevante:

df -h
    
por 16.08.2016 / 07:29
1

Para listar todos os arquivos e diretórios, você tem muitas opções

SHW@SHW:/tmp # time du . > /dev/null 

real    0m0.046s
user    0m0.000s
sys 0m0.000s

SHW@SHW:/tmp # time find . > /dev/null 

real    0m0.003s
user    0m0.000s
sys 0m0.000s

SHW@SHW:/tmp # time ls -aR > /dev/null 

real    0m0.003s
user    0m0.004s
sys 0m0.000s

SHW@SHW:/tmp # time tree -a > /dev/null 

real    0m0.002s
user    0m0.000s
sys 0m0.000s

SHW@SHW:/tmp # du -sch .
4.1M    .
4.1M    total

Leia as man pages de cada comando para mais informações

Pelo menos para o exemplo acima, tree -a parece ser rápido. O diretório /tmp contém os dados 4.1M com 8 arquivos e 21 diretórios.

    
por 16.08.2016 / 09:19
1

du -a / listará todos os arquivos em todos os diretórios nos quais você tem acesso read e pesquisa (desde que você também tenha acesso de leitura aos seus diretórios pai). Ele precisa de permissões de pesquisa porque ele precisa ser capaz de relatar a sage d isc u desses arquivos em vez de apenas listá-los.

Com algumas implementações de du como o GNU du , ele lista arquivos de fato em oposição a entradas de diretório em que se um arquivo possui vários hard links (vários entradas de diretório apontando para ele), apenas uma delas será listada para que o arquivo não seja listado várias vezes.

Para listar todas as entradas de diretório, mas . e .. , você pode usar:

find /

Isso também listará as entradas nos diretórios que você tiver lido e não em pesquisa para acessar.

Para todas as entradas de diretório, incluindo . e .. :

ls -Ra /

(mesma nota sobre o acesso ao diretório).

Se a intenção for comparar com o número de arquivos fornecidos por df -i , essa será a abordagem du -a que você desejará usar, mas, em seguida, você desejará adicionar o sinal -x para limitar a um sistema de arquivo. Observe também que, além dos problemas de acesso ao diretório, ele perderá arquivos que ainda estão abertos por algum processo, mas foram excluídos, arquivos que são mascarados por outro sistema de arquivos e também notou que vários sistemas de arquivos como o ext4 possuem arquivos reservados especiais. (inodes) que não estão vinculados a nenhum diretório, portanto, mesmo no melhor dos casos, você encontrará uma discrepância entre o número dado por df -i / e aquele dado por du -ax /// | grep -c /// .

Veja também o GNU du 's:

du -sx --inodes /

para conseguir isso.

    
por 16.08.2016 / 09:01