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) Comprobar el estado de un archivo
Para mostrar el estado de un archivo, como el tamaño, los enlaces de número de inodo y las marcas de tiempo del archivo, ejecute:
$ stat output.txt
Muestra 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 bloques asignados designados para el archivo.
Bloque IO:el tamaño en bytes de cada bloque.
Tipo de archivo:especifica de qué tipo es el archivo (ya sea un archivo normal, un enlace simbólico, etc.).
Dispositivo:este es el número de dispositivo en formato decimal o hexadecimal.
Inodo:muestra el número de inodo.
Enlaces:especifica el número de enlaces 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:indica la última vez que se accedió a un archivo.
Modificar:indica la última vez que se modificó el contenido de un archivo.
Cambiar:esta es la última vez que se cambiaron los metadatos del archivo.
2) Comprobar 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, use -f
o --file-system
opción.
Por ejemplo:
$ stat -f output.txt
Muestra 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:indica el 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 gratuitos disponibles para usuarios no root.
Inodos:
Total:este es el número total de inodos en el sistema.
Gratis:este es el número de inodos gratuitos disponibles.
4) Para seguir enlaces simbólicos
El comando stat no sigue los enlaces simbólicos de forma predeterminada. Cuando lo ejecuta en un enlace simbólico, la salida comprende 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 usar --printf
o --format
opciones para personalizar la salida del comando stat.
Usando --printf, debe usar \n para imprimir en 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:%i\n' /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 última hora de modificación de datos, escriba:
stat --printf='Name: %n\nThe time of last data modification: %y\n' /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, use -t
opción, que es útil para analizar con otras herramientas.
Conclusión
El stat 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, cubrimos el comando stat en Linux y destacamos algunos ejemplos de uso.