iw4blg <iw4blg@xxxxxxxxxxx> scrisse:
> cancello tutto con rm -r *
> ls -la mi dice che non c'è + nulla..
> ma df -h mi fa vedere la dir piena!
In Linux, e originariamente nei vari Unix da cui discende, il comando rm non fa
che rimuovere uno dei link (hard link, quelli che vengono creati con ln, mentre
i symbolic link che vengono creati con ln -s sono una cosa leggermente diversa)
che agganciano un file, inteso come sequenza di byte, a un nome ovvero una voce
in una directory. Il comando ls(1) elenca le voci in una directory.
Inoltre, quando un processo tiene aperto un file per lavorarci, anche se viene
rimosso l'ultimo link (e quindi non c'è più alcun nome che consenta di arrivare
al file) il file risulta comunque "in uso" e quindi lo spazio da esso
utilizzato non viene resto disponibile per ulteriori file. Il comando du(1)
esamina lo spazio disponibile.
Un caso di discrepanza tra ls(1) e du(1) può quindi indicare o che da qualche
parte c'è una directory con dei nomi per i file o che c'è uno o più processi
che li stanno tenendo aperti. Il secondo caso si approfondisce esaminando la
directory /proc/<PID>/fd, ovvero la pseudo directory che per ogni processo
indica i file che esso tiene aperti. Ogni processo ha un suo Process ID, PID, e
a parte il PID 1 che ha un significato preciso, per trovare chi sia il processo
che tiene i file aperti non c'è che guardarli uno per uno (oppure mettersi di
buzzo buono). In alternativa, il comando top(1) o un suo simile, purtroppo la
memoria non mi aiuta, potrebbe avere l'opzione di mostrare i processi
ordinandoli in base allo spazio su disco "carpito".
Davide Bolcioni
--
There is no place like /home.
|