Búsqueda de sitios web

5 ejemplos de comandos 'stat' para principiantes en Linux


El comando stat es una utilidad útil para ver el estado de un archivo o del sistema de archivos. Recupera información como el tipo de archivo; derechos de acceso en octal y legible por humanos; Cadena de contexto de seguridad de SELinux; hora de nacimiento del archivo, último acceso, última modificación de datos, último cambio de estado tanto en formato legible por humanos como en segundos desde Epoch, y mucho más.

Tiene una opción para especificar un formato personalizado en lugar del predeterminado para mostrar información. En esta guía, veremos cinco ejemplos de comandos stat para principiantes en Linux.

Verificar el estado del archivo de Linux

1. La forma más sencilla de utilizar stat es proporcionarle un archivo como argumento. El siguiente comando mostrará el tamaño, los bloques, los bloques IO, el tipo de archivo, el valor del inodo, la cantidad de enlaces y mucha más información sobre el archivo /var/log/syslog, como se muestra en la captura de pantalla:

$ stat /var/log/syslog

File: '/var/log/syslog'
  Size: 26572     	Blocks: 56         IO Block: 4096   regular file
Device: 80ah/2058d	Inode: 8129076     Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
 Birth: -

Verificar el estado del sistema de archivos

2. En el ejemplo anterior, el comando stat trató el archivo de entrada como un archivo normal; sin embargo, para mostrar el estado del sistema de archivos en lugar del estado del archivo, use la opción -f.

$ stat -f /var/log/syslog

File: "/var/log/syslog"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16012830   Available: 11700997
Inodes: Total: 21544960   Free: 20995459

También puede proporcionar un directorio/sistema de archivos como argumento como se muestra.

$ stat -f /

File: "/"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16056471   Available: 11744638
Inodes: Total: 21544960   Free: 21005263

Habilitar el seguimiento de enlaces simbólicos

3. Dado que Linux admite enlaces (simbólicos y enlaces físicos), ciertos archivos pueden tener uno o más enlaces, o incluso podrían existir en un sistema de archivos.

Para permitir que las estadísticas sigan enlaces, utilice la bandera -L como se muestra.

$ stat -L /

 File: '/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 80ah/2058d	Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
 Birth: -

Utilice un formato personalizado para mostrar información

4. stat también le permite utilizar un formato particular o personalizado en lugar del predeterminado. El indicador -c se usa para especificar el formato utilizado; imprime una nueva línea después de cada uso de la secuencia de formato.

Alternativamente, puede usar la opción --printf que permite la interpretación de secuencias de escape de barra invertida y desactiva la impresión de una nueva línea final. Debe utilizar \n en el formato para imprimir una nueva línea, por ejemplo.

stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure

Significado de las secuencias de formato de los archivos utilizados en el ejemplo anterior:

  • %U – nombre de usuario del propietario
  • %G – nombre del grupo del propietario
  • %C – Cadena de contexto de seguridad de SELinux
  • %z: hora del último cambio de estado, legible por humanos

5. Aquí hay un ejemplo que muestra el uso de secuencias de formatos aceptados para sistemas de archivos.

stat --printf='%n\n%a\n%b\n' /

Significado de las secuencias de formato utilizadas en el comando anterior.

  • %n – muestra el nombre del archivo
  • %a – imprime bloques gratuitos disponibles para quienes no son superusuarios
  • %b – genera bloques de datos totales en el sistema de archivos

Imprimir información en forma concisa

6. La opción -t se puede utilizar para imprimir la información en forma concisa.

$ stat -t /var/log/syslog

/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096

Como última nota, su shell puede tener su propia versión de stat; consulte la documentación de su shell para obtener detalles sobre las opciones que admite. Para ver todas las secuencias de formatos de salida aceptadas, consulte la página del manual de estadísticas.

man stat 

En este artículo, explicamos cinco ejemplos de comandos stat para principiantes en Linux. Utilice el formulario de comentarios a continuación para hacer cualquier pregunta.