Explicación del comando Stat de Linux
El comando stat se usa en el sistema Linux / Unix para mostrar información detallada sobre archivos y sistemas de archivos. Se usa más comúnmente para obtener marcas de tiempo de archivos.
El comando ls de Linux generalmente le brinda detalles básicos sobre un archivo, mientras que el comando stat imprime información adicional sobre el archivo extraído del inodo.
En esta guía, echamos un vistazo más de cerca al comando stat y sus opciones a través de ejemplos.
Sintaxis:
$ stat <OPTION> <FILENAME>
1) Verificar el estado de un archivo
Para mostrar el estado de un archivo, como el tamaño, los enlaces del número de inodo y las marcas de tiempo del archivo, ejecute:
$ stat output.txt
Produce la siguiente información:
Archivo: este es el nombre del archivo.
Tamaño: este es el tamaño del archivo normal en bytes.
Bloques: el número de bloque asignado designado para el archivo.
Bloque de E / S: el tamaño en bytes de cada bloque.
Tipo de archivo: especifica el tipo de archivo (ya sea un archivo normal, un enlace simbólico, etc.).
Dispositivo: este es el número de dispositivo en formato decimal o hexadecimal.
Inode: muestra el número de inodo.
Vínculos: especifica el número de vínculos físicos.
Acceso: presenta los permisos del archivo en formato numérico o simbólico.
Uid: este es el ID de usuario y el nombre del propietario.
Gid: el ID de grupo y el nombre del propietario.
Contexto: describe el contexto de seguridad de SELinux.
Acceso: apunta a la última vez que se accedió a un archivo.
Modificar: apunta a la última vez que se modificó el contenido de un archivo.
Cambiar: esta es la última vez que se modificaron los metadatos del archivo.
2) Verifique el estado del sistema de archivos
Para imprimir el estado del sistema de archivos en el que reside el archivo en lugar de proporcionar información sobre el archivo normal, utilice -f
o --file-system
opción.
Por ejemplo:
$ stat -f output.txt
Produce la siguiente información:
Archivo: describe el nombre del archivo.
ID: especifica el ID del sistema en hexadecimal.
Namelen: especifica la longitud máxima del archivo.
Tamaño de bloque fundamental: este es el tamaño de cada bloque en un sistema de archivos.
Bloques:
Total: esto apunta al número total de bloques en el sistema de archivos.
Libre: número de bloques libres que quedan en el sistema de archivos.
Disponible: la cantidad de bloques libres disponibles para usuarios que no son root.
Inodos:
Total: este es el número total de inodos en el sistema.
Gratis: este es el número de inodos libres disponibles.
4) Seguir enlaces simbólicos
El comando stat no sigue enlaces simbólicos por defecto. Cuando lo ejecuta en un enlace simbólico, la salida incluye información sobre el enlace simbólico pero no el archivo al que apunta.
$ stat /usr/share/zoneinfo/America/Cayman
Para seguir el enlace simbólico e imprimir información sobre el archivo al que apunta, use la opción -L como se muestra:
$ stat -L /usr/share/zoneinfo/America/Cayman
5) Salida personalizada
En lugar de imprimir el formato personalizado predeterminado, puede utilizar el --printf
o --format
opciones para personalizar la salida del comando stat.
Usando –printf, debe usar n para imprimir en una nueva línea dos o más operandos de archivo. Por ejemplo, para imprimir el dispositivo y el número de inodo:
stat --printf="%d:%in" /usr /etc
Output 2048:63 2048:128001
Usando –format imprime una nueva línea por defecto, por ejemplo:
stat --format=%d:%i /usr /etc
Output 2048:63 2048:128001
Para imprimir el nombre del archivo y la hora de la última modificación de datos, escriba:
stat --printf="Name: %nnThe time of last data modification: %yn" /usr
Output Name: /usr The time of last data modification: 2020-09-28 21:47:27.451120000 +0000
Para imprimir el nombre de usuario del propietario, el tipo de archivo y el tamaño total en bytes, ejecute:
stat --format="%U,%F,%s" /usr
Output stat --format="%U,%F,%s" /usr root,directory,4096
6) Mostrar información en forma concisa
Para imprimir información en formato conciso, utilice el -t
opción, que es útil para analizar con otras herramientas.
Conclusión
La estadística es un comando útil para verificar las marcas de tiempo de los archivos, como la modificación del archivo o el tiempo de acceso. En esta guía, hemos cubierto el comando stat en Linux y resaltado algunos usos de ejemplo.