Autor: JackTian
Fuente: cuenta pública "Jie Ge's IT Journey"
ID: Jake_Internet
Reimpresión, póngase en contacto con la autorización (WeChat ID: Hc220088)
Dirección original: ¡ 5 herramientas que pueden reemplazar el comando du!
Hola a todos, mi nombre es Jack.
En el último artículo, les presenté " 10 herramientas alternativas en el entorno Linux que no conoces". "principalmente incluye: bat, duf, tldr, htop, looks, exa, fd, ag, axel, pydf y sus aplicaciones. Luego, continué explorando y encontré algunas buenas alternativas y las resumí.
Bueno, creo que este artículo se basa en comandos nativos como saben. En el entorno Linux, el comando du es familiar para todos. Puede calcular y resumir el uso de espacio de archivos y directorios en el sistema Linux.
Cuando el archivo ocupa el 80% del espacio en disco y el espacio no se puede expandir temporalmente, podemos encontrar los archivos en el directorio específico que ocupa una gran cantidad de espacio en disco en el sistema para limpiar, simplemente ejecute el siguiente comando para ver el espacio ocupado por el tamaño de la carpeta.
# du -sh
Ingrese a la carpeta que ocupa un gran espacio y ejecute el siguiente comando para ordenar los archivos en el directorio actual de mayor a menor.
# du -sh * |sort -rh
Determine si los archivos que ocupan un gran espacio después de la salida se pueden eliminar normalmente de acuerdo con la situación real, para liberar espacio en el disco y observar el uso del disco.
Cuando el archivo ocupa mucho espacio en disco, du se ejecutará muy lentamente y se ejecutará repetidamente cada vez para encontrar archivos grandes, lo cual es ineficiente ncdu
. Este problema se puede resolver en este momento.
1. ncdu
ncdu es un analizador de uso de disco simple y rápido desarrollado con lenguaje C e interfaz ncurses, que se puede usar para ver el espacio en disco ocupado por directorios o archivos en sistemas locales o remotos.
Ubuntu 21.10 disponible en ncdu:
# sudo apt-get install ncdu
Opciones de parámetro ncdu:
-h
: información de ayuda-q
: modo silencioso, el intervalo de actualización es de 2 segundos-v
: versión impresa-x
: mismo sistema de archivos-e
: Habilitar información extendida-r
: solo lectura-o FILE
: exportar el directorio de escaneo como un archivo-f FILE
: Importar directorio de escaneo desde archivo-0,-1,-2
: interfaz de usuario para usar al escanear (0 = ninguno, 2 = ncurses completos)--si
: Use el prefijo base 10 (SI) en lugar de la base 2--exclude PATTERN
: Excluir archivos que coincidan con PATRÓN-X, --exclude-from FILE
: Excluir archivos que coincidan con cualquier patrón en el archivo-L, --follow-symlinks
: seguir enlaces simbólicos (excluyendo directorios)--exclude-caches
: Excluir directorios que contengan CACHEDIR.TAG--exclude-kernfs
: Excluya los pseudo-sistemas de archivos de Linux (procfs, sysfs, cgroups...)--confirm-quit
:confirmar salida--color SCHEME
: establecer el esquema de color
Si no usa ninguna opción de parámetro, puede ejecutar directamente el comando en el directorio que se analizará ncdu
y, una vez que se complete el escaneo ncdu, aparecerá una interfaz de terminal interactiva.
El tamaño de cada directorio se puede ver claramente, 使用方向键
o la Enter
clave puede entrar o salir del directorio específico seleccionado.
Cuando se descubre que un determinado directorio o archivo ocupa un gran espacio, puede buscar el archivo de acuerdo con el uso del teclado mencionado anteriormente y confirmar que, si se puede eliminar, no es necesario salir de ncdu.Después de seleccionar el directorio o archivo a eliminar, presione la d
tecla para eliminarlo. , si se completa la eliminación, presione el q
botón para salir.
dos, polvo
dust (du + rust = dust) es una herramienta du gratuita, de código abierto y más intuitiva escrita en rust, así como una herramienta que proporciona tipos de archivos y metadatos.
Ubuntu 21.10 instala polvo:
du-dust_0.7.1_amd64.deb es la última versión en el repositorio de polvo de GitHub, descargue el .deb
archivo desde la página de lanzamiento de polvo y ejecute los siguientes comandos para descargar e instalar.
wget https://github.com/bootandy/dust/releases/du-dust_0.7.1_amd64.deb
dpkg -i du-dust_0.7.1_amd64.deb
Para otros sistemas, puede consultar otros métodos de instalación de polvo del sistema operativo en GitHub para la instalación.
uso de polvo:
dust [FLAGS] [OPTIONS] [--] [inputs]...
opciones de parámetros de polvo:
-f
: el "tamaño" del directorio es el número de subarchivos/directorios, no el tamaño del disco-s
: use la longitud del archivo en lugar de bloques-p
: las rutas a los subdirectorios no se acortan-h
: información de ayuda-i
: No mostrar archivos ocultos-x
: cuente solo los archivos y directorios que están en el mismo sistema de archivos que el directorio proporcionado-b
: No se mostrará ninguna barra de porcentaje o porcentaje-c
: no imprimirá en color (generalmente los directorios más grandes están coloreados)-r
: árbol de impresión al revés (el más grande, el más alto, el más alto)-t
: mostrar solo estos tipos de archivos-V
: información de la versión impresa-d
: profundidad de visualización-e
: solo incluye archivos que coincidan con esta expresión regular. Para el tipo de archivo png: -e ".png$"-X
: Excluir cualquier archivo o directorio con este nombre-v
: Excluir archivos que coincidan con esta expresión regular. Ignorar los tipos de archivos png: -v ".png$"-n
: El número de líneas de salida a mostrar. Esta es la altura, (pero h ayuda) [predeterminado: 23]-w
: especifica el ancho de la salida para anular la detección automática del ancho del terminal
uso de polvo:
Para ver el tamaño de los archivos en el directorio actual y todos los subdirectorios, puede ejecutar el siguiente comando:
# dust
-p
Los parámetros se pueden mostrar como un directorio completo a partir del directorio actual
# dust -p
Si solo desea ver el tamaño de varios directorios, solo necesita enumerar estos directorios al mismo tiempo y separarlos con espacios:
# dust /bin /etc
Mostrar la longitud del archivo:
# dust -s
Mostrar solo 10 directorios:
# dust -n 10
3. duu
duu es la abreviatura de Directory Usage Utility. Es una herramienta escrita en Python para ver el tamaño de un directorio específico. Tiene funciones multiplataforma y se puede usar en los sistemas operativos Windows, Linux y MacOS. Es un kilobyte en kilobytes. Las unidades muestran el uso del disco del directorio.
Ubuntu 21.10 También duu:
Antes de instalar la herramienta duu, debe asegurarse de que el sistema tenga instalado el entorno Python 3. De lo contrario, debe instalarlo. Si lo hay, puede ignorarlo. Sin embargo, Python 3 está actualmente disponible en el software predeterminado. repositorios en la mayoría de las distribuciones de Linux.
v2.22.tar.gz es la última versión del paquete de código fuente en el repositorio de duu GitHub, descargue el .tar.gz
archivo desde la página de lanzamiento de duu y ejecute los siguientes comandos para descargar e instalar.
# wget https://github.com/jftuga/duu/archive/refs/tags/v2.22.tar.gz
# tar -zxvf v2.22.tar.gz
Después de la descompresión, ingrese a la carpeta duu-2.22 y verifique duu.py
si el archivo existe.
# ls | grep duu
duu-2.22
# cd duu-2.22/
# ls
duu.py LICENSE README.md
duu uso:
duu.py [-h] [-b] [-e] [-q] [-s STATUS] [-n] [-N] [-f] [-S] [-H] [-T THREADS] [-x EXCLUDE] [-X REGEXPR] [-o OUTPUT] [dname]
opciones de parámetro duu:
-h
: mostrar este mensaje de ayuda y salir-b
: No imprime resúmenes ni estadísticas, se utiliza exclusivamente para ordenar-e
: extensión de archivo de resumen-q
: no mostrar un solo directorio-s
: enviar estado de procesamiento a STDERR, número de directorios por ESTADO-n
: saltar directorios que comienzan con "."-N
: sin recursividad-f
: Muestra el número de archivos en cada directorio-S
: Mostrar estadísticas de archivo de media, mediana, moda y desviación estándar-H
: Mostrar números en un formato más legible-T
: número de subprocesos simultáneos, considerando SAN-x
: una lista separada por dos puntos de cadenas que no distinguen entre mayúsculas y minúsculas para excluir-X
: una lista separada por dos puntos de expresiones regulares que no distinguen entre mayúsculas y minúsculas para excluir-o
: salida a archivo CSV
duu uso:
Para ver el tamaño del directorio actual, simplemente ejecute el siguiente comando:
# python3 duu.py
Como se muestra en la figura anterior, se puede ver que duu mostrará la cantidad de archivos y directorios en el directorio actual y mostrará el tamaño total de estos archivos en Bytes, KB y MB, así como el tamaño de cada archivo. .
Para ver el tamaño de un directorio, simplemente agregue la ruta absoluta al directorio:
# python3 duu.py /etc/init.d/
Cuarto, disco
Diskus también es una herramienta de código abierto pequeña, rápida y reemplazable por comandos basada en Rust Diskus calculará el tamaño de todos los archivos en el directorio actual, y el efecto de du -sh
ejecutar el comando es el mismo que el de .diskus
du -sh
du -sh --bytes
Según el desarrollador del repositorio diskus GitHub, en su computadora portátil de 8 núcleos, las carpetas de tamaño mediano (15 GB, 100 000 directorios, 400 000 archivos) se probaron con la herramienta de referencia de línea de comandos hiperfina, para carpetas más pequeñas. La prueba es realmente inútil. ya que todos los programas se completarán en un tiempo razonable sin interrumpir su flujo de trabajo, lo que lleva a la conclusión de que diskus es aproximadamente diez veces más rápido que el caché de disco frío y el caché de disco caliente tres veces más.
La siguiente es una comparación de los resultados de la memoria caché de disco frío y la memoria caché de disco caliente según las pruebas de diskus
los comandos du -sh
, sn p -d0 -j8
y .dust -d0
caché de disco frío
Mando | Medio] | Min [s] | máx. [s] | Relativo |
---|---|---|---|---|
discos | 1,746 ± 0,017 | 1.728 | 1.770 | 1.00 |
du-sh | 17,776 ± 0,549 | 17.139 | 18.413 | 10.18 |
sn p -d0 -j8 | 18,094 ± 0,566 | 17.482 | 18.579 | 10.36 |
polvo -d0 | 21,357 ± 0,328 | 20.974 | 21.759 | 12.23 |
caché de disco caliente
Mando | Medio] | Min [s] | máx. [s] | Relativo |
---|---|---|---|---|
discos | 500,3 ± 17,3 | 472.9 | 530.6 | 1.00 |
du-sh | 1098,3 ± 10,0 | 1087.8 | 1122.4 | 2.20 |
sn p -d0 -j8 | 1122,2 ± 18,2 | 1107.3 | 1170.1 | 2.24 |
polvo -d0 | 3532,1 ± 26,4 | 3490.0 | 3563.1 | 7.06 |
Disco antropomórfico de Ubuntu 21.10:
diskus_0.7.0_amd64.deb es la última versión en el repositorio diskus GitHub, descargue el .deb
archivo desde la página de lanzamiento de diskus y ejecute los siguientes comandos para descargar e instalar.
# wget https://github.com/sharkdp/diskus/releases/download/v0.7.0/diskus_0.7.0_amd64.deb
# dpkg -i diskus_0.7.0_amd64.deb
Para otros sistemas, puede consultar otros métodos de instalación del sistema operativo de diskus en GitHub para la instalación.
uso de disco:
diskus [OPTIONS] [path]...
Opciones de parámetros de diskus:
-j
: establece el número de subprocesos (predeterminado: 3 x número de núcleos), formato de salida del tamaño del archivo (decimal: MB, binario: MiB) [predeterminado: decimal] [valores posibles: decimal, binario]-v
: no ocultar errores del sistema de archivos-b
: Calcula el tamaño aparente en lugar del uso del disco-h
: información de ayuda-v
:Información de versión
usos de diskus:
El du -sh 路径
comando utilizado puede ver el tamaño de un directorio, y el -s
parámetro aquí indica el tamaño total de la pantalla.
# du -sh /etc
16M /etc
Si diskus
se usa, puede mostrar directamente el tamaño total del directorio actual.
# diskus
Si desea verificar el tamaño de un directorio, puede diskus
agregar una ruta absoluta después.
# diskus /etc
16.66 MB (16,662,528 bytes)
Cinco, estaño-verano
tin-summer (sn) es una herramienta de código abierto escrita en lenguaje Rust y du
un reemplazo para los comandos que se pueden usar para encontrar archivos que ocupan espacio en el disco, con mejor salida, comandos y valores predeterminados más limpios, y gracias a los subprocesos múltiples, incluso puede ejecutar más rápido que el comando du al calcular el tamaño de directorios grandes, la diferencia entre tin-summer y el comando du es que el primero lee el tamaño del archivo, mientras que el segundo lee el uso del disco.
Además, los desarrolladores de tin-summer también hicieron una comparación clara de las razones para usar du y sn.
Razones para usar du:
- Uso de disco legible, no solo tamaño de archivo
- enlace simbólico opcional de desreferencia
- Puede ser un poco más rápido en directorios pequeños
- Estable y bien soportado
Razones para usar sn:
- Más rápido en directorios grandes
- Use expresiones regulares para la exclusión, haciéndolo mucho más rápido que du cuando se usa con el indicador --exclude.
- Valores predeterminados para salida legible
- salida de color
- al obtener una mejor ayuda
- Proporciona salida ordenada
- Buscar artefactos de construcción
- Lee el tamaño del archivo, no el uso del disco
- Extensible en Rust
Al mismo tiempo, también se realizó una prueba comparativa para comparar los resultados de tiempo de sn y du ejecutando diferentes tamaños de directorio.
Tamaño del directorio | Herramienta | Mando | Hora |
---|---|---|---|
600 MB | sn | sn p | 60,74 ms |
600 MB | sn | sn d | 99,92 ms |
600 MB | desde | du-hacd2 | 88,28 ms |
4 GB | sn | sn p | 185,2 ms |
4 GB | sn | sn d | 271,9 ms |
4 GB | desde | du-hacd2 | 195,5ms |
700 MB | sn | sn p | 91,05 ms |
700 MB | sn | sn d | 176,3 ms |
700 MB | desde | du-hacd2 | 153,8 ms |
7MB | sn | sn p | 19,48 ms |
7MB | sn | sn d | 12,72 ms |
7MB | desde | du-hacd2 | 10,13 ms |
Instalar estaño-verano:
# curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer
También se puede instalar usando un cargo
administrador de paquetes tin-summer
, siempre que Rust esté instalado en el sistema. Si Rust ya está instalado, ejecute el siguiente comando:
# cargo install tin-summer
Si los dos métodos de instalación anteriores no han instalado correctamente tin-summer, también puede descargar la última versión de los archivos binarios desde el área de lanzamiento del repositorio de tin-summer GitHub para la instalación manual.
Uso de estaño-verano:
Vea el tamaño del archivo del directorio actual sin agregar ningún parámetro. tin-summer también muestra al usuario en un formato fácil de leer de forma predeterminada. Puede ejecutar el siguiente comando:
# sn f
Para ver el tamaño del archivo de un directorio específico, ejecute el siguiente comando:
# sn f <path-to-the-directory>
Para buscar en el directorio actual el directorio que contiene los artefactos de compilación, ejecute el siguiente comando:
# sn ar
Para buscar artefactos o directorios que contengan artefactos que ocupen más de 200 MB de espacio en disco, ejecute el siguiente comando:
# sn ar -t200M
Para obtener una lista ordenada de los 10 directorios más grandes en $DIR, ejecute el siguiente comando:
# sn sort $DIR -n12
Sn es realmente más rápido cuando opera un directorio grande y relativamente lento cuando opera un directorio pequeño.
Referirse a
polvo:https://github.com/bootandy/dust/
duu:https://github.com/jftuga/duu
diskus:https://github.com/sharkdp/diskus/
tin-summer:https://github .com/vmchale/tin-verano
finalmente
Aunque la mayoría de nosotros todavía usamos la herramienta de comando básica predeterminada en nuestro trabajo diario, cuando la reemplaza con las 5 herramientas de reemplazo descritas anteriormente, se cree que es muy útil en muchos escenarios. Por supuesto, puede haber más alternativas de línea de comandos de Linux, y puede agregarlas en el área de comentarios a continuación.
Eso es todo por hoy.
Si crees que este artículo es útil para ti, dale me gusta , deja un comentario o reenvía este artículo para que más amigos puedan verlo, ¡porque esta será la motivación más fuerte para que continúe publicando más artículos de alta calidad!