Buscando una serie de comandos que me muestren los archivos más grandes en una unidad.
command-line
disk-usage
Ryan Detzel
fuente
fuente
Respuestas:
Si solo necesita encontrar archivos grandes, puede usar
find
con la-size
opción. El siguiente comando enumerará todos los archivos de más de 10MiB (que no deben confundirse con 10MB ):Si desea buscar archivos con un tamaño determinado, puede combinarlo con una búsqueda de "tamaño inferior a". El siguiente comando busca archivos entre 10MiB y 12MiB:
apt-cache search 'disk usage'
enumera algunos programas disponibles para el análisis del uso del disco. Una aplicación que parece muy prometedora esgt5
.De la descripción del paquete:
En la sección "paquetes relacionados" de gt5 , encontré
ncdu
. De su descripción del paquete:fuente
-ls
salida está codificado (consulte las funciones de código fuentepred_fls
y list_file ). Puede intentar aproximar la salida utilizando la-printf
opción, procesar la salida con awk o usar algo comofind ... -type f -exec ls -ldh {} \; | column -t
Solo uso una combinación de
du
ysort
.Luego se trata de enjuagar y repetir . Apunte a los subdirectorios que considere demasiado grandes, ejecute el comando para ellos y descubra qué está causando el problema.
Nota: Utilizo
du
la-x
bandera de '' para mantener las cosas limitadas a un sistema de archivos (tengo una disposición bastante complicada de cosas de montaje cruzado entre SSD y RAID5).Nota 2:
2>/dev/null
redirige cualquier mensaje de error al olvido. Si no te molestan, no es obligatorio.fuente
du
página de manual: "Resuma el uso del disco de cada ARCHIVO, de forma recursiva para los directorios".Mi solución favorita utiliza una mezcla de varias de estas buenas respuestas.
du
argumentos:-a
para "todos" los archivos y directorios. Déjalo solo para directorios-BM
para generar los tamaños en megabytes (M) tamaños de bloque (B)2>/dev/null
- excluir mensajes de error de "permiso denegado" (gracias @Oli)sort
argumentos:-n
para "numérico"-r
para "reversa" (mayor a menor)head
argumentos:-n 50
para los mejores 50 resultados.more
si usa un número más pequeñoNota: Prefijo
sudo
para incluir directorios a los que su cuenta no tiene permiso de acceso.Ejemplo que muestra los 10 archivos y directorios más grandes en / var (incluido el total general).
fuente
Para mostrar los directorios más grandes del top 20 (recursivamente) en la carpeta actual, use el siguiente one-liner:
o (más orientado a Unix):
Para los 20 archivos más grandes del directorio actual (recursivamente):
o con tamaños legibles por humanos:
Por lo tanto, estos alias son útiles para tener en sus archivos rc (cada vez que lo necesite):
fuente
La respuesta de qbi es correcta, pero será muy lenta cuando haya muchos archivos, ya que comenzará un nuevo proceso ls para cada elemento.
una versión mucho más rápida que usa find sin generar procesos secundarios sería usar printf para imprimir el tamaño en bytes (% s) y la ruta (% p)
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
fuente
Esta parece ser la aplicación perfecta para
find
:Este comando encontrará todos los archivos en el directorio
$DIRECTORY
y los ejecutaráls -s
. El último comando imprime el tamaño asignado de un archivo más el nombre del archivo. El resultado se ordena numéricamente y se muestran las últimas cinco entradas. Por lo tanto, verá los 5 archivos más grandes$DIRETORY
o cualquier subdirectorio. Si ingresatail -n 1
, verá solo el archivo más grande.Además puedes jugar mucho con
find
. Por ejemplo, puede buscar archivos que tengan menos de n días (-ctime -n
) o que pertenezcan a usuarios especiales (-user johndoe
).fuente
Cuando necesito hacer más espacio libre en los servidores, uso este comando. Encuentra todos los archivos más grandes que 50 MB y "du -h" hace una mejor lista de archivos y "sort -n" después de la lista de tuberías, ordenada numéricamente por tamaño de archivo.
fuente
Pruebe Baobab, le brinda una descripción gráfica de los archivos y carpetas, puede ver dónde están los cerdos del espacio real y eliminarlos con un clic https://help.ubuntu.com/community/Baobab
fuente
Para encontrar todos los archivos GB, por ejemplo, usaría du y grep, aunque los otros métodos mencionados aquí también parecen geniales.
También puedes ponerte elegante con la opción --except que du tiene.
fuente
También puede ordenar los archivos por tamaño:
Encuentra solo archivos y se ejecuta
du -h
para cada archivo, que muestra el tamaño del archivo. Por último, clasificamos la salida defind
/ dedu
acuerdo con la primera columna (en formato legible para humanos).El último archivo impreso es el más grande.
fuente
Puedes usar el comando para ver los archivos más grandes mientras saltas los directorios:
Para encontrar todos los archivos que son más grandes que 100MiB (esto no es 100MB, vea aquí si está confundido):
El siguiente comando mostrará los 5 archivos más grandes de la carpeta
$DIRECTORY
:USO
du
: El siguiente comando que usa du, muestra los directorios con los 20 tamaños más grandes en la carpeta de trabajo de inicio:Ahora para mostrar los directorios / archivos más grandes, incluidas las subcarpetas, ejecute:
Utilizando
ls
:Para enumerar los 5 archivos más grandes en el directorio / bin, emita el siguiente comando:
También puede usar el Analizador de uso de disco o Baobao como se muestra aquí, por ejemplo.
fuente
Una herramienta excelente y fácil de usar a la que se hace referencia en la respuesta a una pregunta similar es la
NCurses Disk Usage
herramienta:fuente