Saltar al contenido

Cómo mostrar solo el tamaño total del archivo de una extensión particular mediante el comando `du`

Indagamos en distintos sitios para traerte la solución para tu problema, en caso de inquietudes puedes dejarnos tu duda y te respondemos porque estamos para ayudarte.

Solución:

con GNU du (es decir, en Linux no integrado o Cygwin), puede usar el --exclude opción para excluir los archivos que no desea hacer coincidir.

du -s --exclude='*.html' /var/foo

Si desea hacer coincidir positivamente *.pdf archivos, necesitará usar algún otro método para listar los archivos, y du mostrará al menos una línea de salida por argumento, más un total general con la opción -c. Puedes llamar tail para eliminar todo excepto la última línea, o sed para eliminar también la palabra “total”. Para enumerar los archivos en ese directorio, use comodines en el shell.

du -sc /var/foo/*.pdf | tail -n1
du -sc /var/foo/*.pdf | sed -n '$s/t.*//p'

Si también necesita recorrer archivos en subdirectorios, use findo usar un **/ patrón si su caparazón lo admite. Para **/en bash, primera ejecución shopt -s extglob, y tenga en cuenta que las versiones de bash hasta la 4.2 atravesarán enlaces simbólicos a directorios; en zsh, esto funciona fuera de la caja.

du -sc /var/foo/**/*.pdf | tail -n1

Una complicación adicional con la versión de búsqueda es que si hay demasiados archivos, find correrá du más de una vez, para mantenerse por debajo del límite de longitud de la línea de comando. Con el método comodín, obtendrá un error si eso sucede (“límite de longitud de línea de comando excedido”). El siguiente código asume que no tiene ningún nombre de archivo coincidente que contenga una nueva línea.

find /var/foo -name '*.pdf' -exec du -sc  + |
awk '$2 == "total" total += $1 END print total'

Puede dejar que el shell expanda los archivos:

$ mkdir foo
$ echo "abc" > foo/1.pdf
$ echo "abcd" > foo/2.pdf
$ echo "abcd" > foo/3.html
$ du -ch foo/*.pdf
4,0K    foo/1.pdf
4,0K    foo/2.pdf
8,0K    total

Sin embargo, como puede ver, esto indica archivos de archivo unas 1000 veces como se acaba de crear. Una mejor opción es usar el -b opción:

$ du -cbh foo/*.pdf
4   foo/1.pdf
5   foo/2.pdf
9   total

Los archivos de gran tamaño seguirán mostrándose en formato legible por humanos, p. 173K.

No se te olvide mostrar esta reseña si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *