Come capire cosa sta occupando spazio su disco?


86

Sto cercando un'alternativa Linux a WinDirStat . Vorrei sapere cosa sta occupando spazio sui miei dischi rigidi.

È preferito un programma che funziona su console e non richiede un'interfaccia utente.


ncduè la mia risposta preferita, ma vedo che la prima risposta dice che stai riscontrando problemi che non sono nella tua domanda.
SDsolar,

Risposte:


74

Sulla base dei tuoi problemi con l' installazione di ncdu, la mia raccomandazione sarebbe di usare due lavorare sortinsieme.

Per esempio:

  • du /home | sort -rn (cercherà tutti i file / directory in / home e li ordinerà dal più grande al più piccolo.
  • du -h /home | sort -rh(lo stesso ma lo mostrerà in MB / KB / ecc.) - Nota che richiede coreutils 7.5 o più recente ( sort --versionper controllare)

Puoi sostituire / home con qualsiasi directory di tua scelta.


Ottimo, grazie per l'aiuto. Il mio coreutils è 5.97 - è per questo che l'ordinamento di du -h non è giusto?
ripper234,

Sì, dovresti accontentarti di du /home | sort -rncoreutils 5.97 o usare un po 'di "magia" con perl ecc., Come dimostrato su ServerFault ( serverfault.com/q/62411/60012 )
NJ,

2
OTOH se c'è una grande sotto-sottodirectory, il suo gonfio mostrerà più volte (per quella dir e ogni dir parent) nella parte superiore dei risultati e IMHO che distrae dal vero bloat. L'uso di "ncdu" suggerito di seguito potrebbe essere d'aiuto, ci proverò. =)
lapo

2
Trovo anche l'opzione -size per "trovare" utile, in quanto ti consente di trovare tutti i file in un determinato. Almeno per GNU find, puoi fare qualcosa del tipo: "find. -Size + 100M" per trovare file più grandi di 100M sotto la directory corrente.
gabe.

89

Se vuoi uno strumento da riga di comando, preferisco ncdu , una versione di ncurses di du. Esegue la scansione del disco (o di una determinata cartella) e quindi mostra gli utilizzi dello spazio di livello superiore; puoi selezionare una determinata directory per ottenere il riepilogo corrispondente per quella directory e tornare indietro senza bisogno di rianalizzare:

Schermata di ncdu


Se stai bene con un programma GUI, Filelight è la cosa più vicina a WinDirStat che ho trovato; mostra una vista grafica del consumo di spazio:

Schermata di Filelight

Ad esempio ncdu, Filelight ti consente di selezionare una determinata directory per ottenere la suddivisione per quella directory


4
non pensi che QDirStat sia più vicino a WinDirStat?
Janus Troelsen,

39

Dovresti essere consapevole che WinDirStat è in realtà una porta di KDirStat , che è un programma Linux / KDE. Quindi, se stai cercando un'alternativa Linux a WinDirStat, dovresti sicuramente dare un'occhiata a KDirStat . È già confezionato nella maggior parte delle distribuzioni, basta installarlo.

Un'altra alternativa è FileLight, già citato da Michael Mrozek, e il plugin Konqueror fsview(puoi eseguirlo autonomamente dalla riga di comando).


16
Wow, non ho mai capito che (credo che "Win" nel nome avrebbe dovuto essere un omaggio). Una volta un collega mi ha chiesto se esistesse una versione Linux di WinSCP ; Sono morto un po 'dentro
Michael Mrozek

3
@ commento precedente. Ahia. Solo ahi.
David Oneill,

2
Si noti che verrà chiamato K4DirStat per Ubuntu se l'installazione
avviene

oppuresudo apt-get install k4dirstat
y3sh

34

Un altro programma GUI è: baobab

testo alternativo


In realtà, se sono su Ubuntu non mi preoccuperò di cercare alcuna alternativa. baobapè appena abbastanza.
phunehehe,

Mostra anche il numero di file, che a volte devono essere controllati e lo spazio su disco
golimar

9

Usa QDirStat (precedentemente KDirStat).

Include uno script perl che genera un file di cache sul server / console senza che sia necessario eseguire / installare un'interfaccia utente; trasferiscilo sul tuo computer desktop e visualizzalo nel client gui.

Vedi https://unix.stackexchange.com/a/256516/186308 per i dettagli.


è incredibilmente veloce. strumento molto bello
phil294

7

Preferisco la seguente riga di comando:

$  du -s -m -x * | sort -n

Abbattendolo, dumostra l'utilizzo del disco; -sdice stampa il totale per ogni argomento (ogni elemento nella directory corrente), -mdice mostra la dimensione in Megabyte. Ciò semplifica il funzionamento dell'ordinamento; sort non capisce davvero l' -houtput. Il -xignora altri filesystem; questo è utile quando si cerca di trovare spazio maiali /var, ed /var/spool/fooè un filesystem diverso.


La risposta principale non è già utilizzata du?
muru,

Sì, ma du / home sui miei sistemi restituisce decine di migliaia di file; Raramente mi interessa quale sia il (diciamo) il 100 più grande di quei file; In genere voglio sapere quali sottodirectory occupano più spazio.
P Joslin,

Invece di -s, ho specificato --max-depth = 2, poiché volevo andare giù di una directory dalla directory principale, ma la tua risposta mi ha indicato in quella direzione. Grazie!
John Eisbrener,

6

C'è anche questo fantastico script Python da /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

Non è il più ricco di funzionalità, ma è eseguito da un singolo script Python, quindi è estremamente portatile.

testo alternativo



4

Potresti anche provare GD Map , un altro strumento GUI basato su mappe ad albero.


3

xdiskusage è molto flessibile, leggero con dipendenze molto snelle, facile da compilare ..

Mostra un albero da sinistra a destra che puoi navigare con il mouse o i tasti freccia, ingrandire (fare clic o entrare), nascondere alcune parti per una migliore visualizzazione, cambiare l'ordinamento, il numero di colori ecc. Con i tasti o il menu contestuale.

È così leggero che puoi usarlo su un collegamento SSH remoto con buone prestazioni. In questo caso, raccomando l' -qopzione della riga di comando per disabilitare la barra di avanzamento che appare mentre i file vengono camminati.

Puoi anche eseguire dutu stesso in anticipo.

Una situazione è un filesystem remoto pieno o quasi pieno. Su quel sistema in esecuzione du -ak | gzip >log_of_disk_usage.txt.gz, recuperare l'output ed eseguirlo gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aqlocalmente.
O anche ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gzper archiviare il risultato localmente senza scrivere nulla in remoto.

xdiskusage non offre la possibilità di modificare il filesystem (come spostare nel cestino, ecc.) ma è possibile copiare un percorso negli appunti e incollarlo in un file manager, terminale ecc.

screenshot di xdiskusage


2

Recentemente ho usato lo strumento da riga di comando (CLI, non TUI): http://zevv.nl/play/code/philesight/

Produce un file PNG che è possibile visualizzare altrove. Ha anche uno script CGI.

Molto probabilmente non sei limitato alla modalità testo sulla tua workstation locale, quindi dovrebbe essere appropriato.


1

Anche per vedere i file in una directory specifica ordinati per dimensione dopo aver trovato la directory usando du use:

ls -lrSh

1

Duc ( https://duc.zevv.nl/ ) funzionerà dalla riga di comando.

Può essere installato e usato così in Debian 9:

# apt install duc
# duc index /
# duc graph /

Con questo otterrai un file chiamato duc.pngnella directory corrente. Ora puoi copiare questo file su un altro computer compatibile con la GUI e sarà simile al seguente: duc.png

NOTA: Duc è il sostituto dello strumento menzionato da @OCTAGRAM nella sua risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.