Comando Stat, algunos ejemplos básicos en Ubuntu
En el siguiente artículo vamos a echar un vistazo a algunos ejemplos básicos del comando stat. Este comando para Gnu/Linux, es una herramienta de línea de comandos que se utiliza para mostrar información detallada sobre un archivo o sistema de archivos. El comando stat es parte de las GNU Core Utilities, que son herramientas que vienen preinstaladas en prácticamente todos los sistemas UNIX y Gnu/Linux.
Algunos usuarios piensan en el comando stat como una versión mejorada del comando ls -l. Mientras que el indicador -l proporciona más detalles sobre los archivos, como la propiedad y los permisos de los archivos, el comando stat profundiza y proporciona una mayor cantidad de información.
Comando stat
La sintaxis del comando stat de Gnu/Linux es la siguiente:
stat [OPCIONES] NOMBRE DEL ARCHIVO
Comando stat sin argumentos
Si no utilizamos ninguna opción, el comando stat muestra la salida predeterminada. Si quisiésemos ver los detalles de un archivo situado en el directorio actual, solo tendríamos que ejecutar en una terminal (Ctrl+Alt+T):
stat archivo1.txt
Cuando se invoca sin ninguna opción, stat muestra la siguiente información del archivo:
- Fichero: el nombre del archivo.
- Tamaño: el tamaño del archivo en bytes.
- Bloques: la cantidad de bloques asignados que toma el archivo.
- Bloque E/S: el tamaño en bytes de cada bloque.
- Tipo de archivo: archivo regular, directorio, enlace simbólico …
- Dispositivo: número de dispositivo en hexadecimal y decimal.
- Inode: número de inode.
- Enlaces: número de enlaces físicos.
- Acceso: permisos de archivo en los métodos numérico y simbólico.
- Uid: ID de usuario y nombre del propietario.
- Gid: ID de grupo y nombre del propietario.
- Acceso: la última vez que se accedió al archivo.
- Modificación: la última vez que se modificó el contenido del archivo.
- Cambio: la última vez que se modificó el atributo o el contenido del archivo.
Ver información sobre varios archivos
También podremos ver un informe detallado sobre varios archivos:
stat archivo1.txt archivo2.pdf
Mostrar el estado del sistema de archivos
Esta herramienta puede verificar el estado del sistema de archivos donde se encuentra el archivo usando la opción -f. Esto va a mostrar el tamaño del bloque, la memoria total y disponible, por mencionar solo algunos atributos:
stat -f /home
Mostrar información en formato básico
La opción -t se usa para mostrar información en un formato básico:
stat -t archivo1.txt
Habilitar el seguimiento de enlaces simbólicos
Por lo general, si ejecutamos el comando stat contra un enlace simbólico, solo ofrecerá información sobre el enlace y no sobre el archivo al que apunta el enlace:
Para obtener información sobre el archivo al que apuntan los enlaces, tendremos que usar la opción -L, también conocida como opción de eliminación de referencias:
stat -L archivo1.txt
Esto va a mostrar información sobre el archivo y no sobre el enlace.
Secuencia de formato
Hasta ahora hemos visto que el comando stat imprime un montón de información en la terminal. Si te interesa una información específica, se puede personalizar la salida utilizando una secuencia de formato, que nos ofrecerá exactamente lo que necesitamos, omitiendo los otros detalles. Las expresiones más populares que se utilizan para personalizar la salida incluyen la opción –format o –printf.
Para mostrar los derechos de acceso y uid (ID de usuario) utilizaremos las secuencias de formato %a y %u.
stat --printf='%a:%u\n' archivo1.txt
En caso de querer ver el inodo y los derechos de acceso, también podemos utilizar la opción –format:
stat --format='%i:%a' archivo1.txt
Secuencias de formato
Algunas de las secuencias de formatos que podemos utilizar son:
%a → Va a mostrar los derechos de acceso en formato octal.
%A → Muestra los derechos de acceso en un formato legible por humanos.
%b → Imprime el número de bloques asignados.
%B → El tamaño en bytes de cada bloque informado por %b.
%d → Muestra el número de dispositivo en formato decimal.
%D → El número de dispositivo en formato hexadecimal.
%g → Imprime el ID de grupo del propietario.
%G → Muestra el nombre del grupo del propietario.
%n → Muestra el nombre del archivo.
%N → Escribe el nombre del archivo entre comillas sin referencia si es un enlace simbólico.
%u → Muestra el ID de usuario del propietario.
%U → Imprime el nombre de usuario del propietario.
%w → Revela la hora de nacimiento del archivo, legible por humanos. Escribe – si se desconoce.
%W → Imprime la hora de nacimiento del archivo, en segundos desde Epoch. Escribe 0 si se desconoce.
%x → Va a imprimir la hora del último acceso, legible por humanos.
%X → La hora del último acceso, en segundos desde Epoch.
%y → Muestra la hora de la última modificación, legible por humanos.
%Y → Imprime el tiempo desde la última modificación, en segundos desde Epoch.
%z → Este es el momento del último cambio, legible por humanos.
%Z → La hora desde el último cambio, en segundos desde Epoch.
Obtener ayuda
Para obtener más opciones del comando, solo habrá que ejecutar el siguiente comando:
stat --help
También se pueden consultar las páginas man.