La salida se puede hacer un poco más fácil de analizar usando la -Popción que asegurará que:
La información sobre cada sistema de archivos siempre se imprime exactamente en una línea; un dispositivo de montaje nunca se coloca solo en una línea. Esto significa que si el nombre del dispositivo de montaje tiene más de 20 caracteres (por ejemplo, para algunos montajes de red), las columnas están desalineadas.
Esto hace que sea mucho más fácil obtener solo el espacio libre disponible:
$ df -Ph.| tail -1| awk '{print $4}'
( -husa megabytes, gigabytes, etc.) Si su sistema no lo tiene, -kúselo solo para kilobytes).
Si pasamos dfuna ruta, solo devolverá 2 filas: una fila de encabezado y luego los datos sobre el sistema de archivos que contiene la ruta. Podemos usar la cola para agarrar solo la segunda fila. Sabemos que el espacio disponible está en la cuarta columna, por lo que tomamos eso con awk. Todo esto podría hacerse con awk:
Puede optimizar su comando utilizando la variable de entorno en $PWDlugar de utilizar la sustitución de comandos y eliminar la necesidad de cola: df -Ph $PWD | awk 'NR==2{print $4}'
SiegeX
@SiegeX: Estoy de acuerdo en que hacerlo todo awkes mejor. Incluí el comando más largo porque quería tener un ejemplo de cómo se puede construir una cadena de comandos simples para hacer algo más complicado. He actualizado la respuesta para incluir su mejora.
Steven D
-Pes estándar ( Pes para POSIX). Pero -hes una extensión GNU (también existe en algunos otros sistemas, pero, por ejemplo, en OpenBSD es incompatible con -P).
Gilles 'SO- deja de ser malvado'
Puede hacerlo sin usar el interruptor --output = avail: df -h --output=avail . | tail -1
Floyd
"Puedes optimizar tu comando". Realmente no. Ejecutar ambas tuberías 10'000 veces (como en time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }) no revela una diferencia significativa en la velocidad, lo que no es sorprendente: invocar tailno es costoso y awkse ahorrará para saltar al final de la entrada ... Puede haber habido una diferencia en el PDP-11 ...
David Tonhofer
10
¿Qué tal hacer df -h .? Esto le dará el espacio libre disponible de la partición en la que se encuentra su directorio de trabajo actual.
Un pequeño ejemplo:
/usr/local/nagios/libexec # df -h .FilesystemSizeUsedAvailUse%Mounted on
/dev/mapper/vg00-lvol1
9.9G6.1G3.4G65%/
du -h
?Respuestas:
La salida se puede hacer un poco más fácil de analizar usando la
-P
opción que asegurará que:Esto hace que sea mucho más fácil obtener solo el espacio libre disponible:
(
-h
usa megabytes, gigabytes, etc.) Si su sistema no lo tiene,-k
úselo solo para kilobytes).Si pasamos
df
una ruta, solo devolverá 2 filas: una fila de encabezado y luego los datos sobre el sistema de archivos que contiene la ruta. Podemos usar la cola para agarrar solo la segunda fila. Sabemos que el espacio disponible está en la cuarta columna, por lo que tomamos eso conawk
. Todo esto podría hacerse conawk
:o muchos otros conjuntos de filtros .
fuente
$PWD
lugar de utilizar la sustitución de comandos y eliminar la necesidad de cola:df -Ph $PWD | awk 'NR==2{print $4}'
awk
es mejor. Incluí el comando más largo porque quería tener un ejemplo de cómo se puede construir una cadena de comandos simples para hacer algo más complicado. He actualizado la respuesta para incluir su mejora.-P
es estándar (P
es para POSIX). Pero-h
es una extensión GNU (también existe en algunos otros sistemas, pero, por ejemplo, en OpenBSD es incompatible con-P
).df -h --output=avail . | tail -1
time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }
) no revela una diferencia significativa en la velocidad, lo que no es sorprendente: invocartail
no es costoso yawk
se ahorrará para saltar al final de la entrada ... Puede haber habido una diferencia en el PDP-11 ...¿Qué tal hacer
df -h .
? Esto le dará el espacio libre disponible de la partición en la que se encuentra su directorio de trabajo actual.Un pequeño ejemplo:
fuente
En bytes:
Legible por humanos:
o
o
fuente