5 Ejemplos de comandos 'stat' para Linux Newbies


comando stat es una utilidad útil para ver el estado del archivo o del sistema de archivos. Recupera información como el tipo de archivo; derechos de acceso en octal y legibles por humanos; Cadena de contexto de seguridad SELinux; hora de nacimiento del archivo, último acceso, última modificación de los datos, último cambio de estado, tanto legible para las personas como en segundos desde la Época, 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 comando stat para novatos en Linux.

Compruebe el estado del archivo de Linux

1. La forma más fácil de usar stat es proporcionarle un archivo como argumento. El siguiente comando mostrará el tamaño, bloques, bloques de E/S, tipo de archivo, valor de inodo, número 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: -

Comprobar 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 un 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. Como Linux admite enlaces ( simbólicos y enlaces duros ), ciertos archivos pueden tener uno o más enlaces, o incluso podrían existir en una sistema de archivos.

Para permitir que stat siga los enlaces, use la marca -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 usar 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 interpretar secuencias de escapes de barra invertida y desactiva la impresión de una nueva línea final. Debe usar \ 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 para los archivos utilizados en el ejemplo anterior:

  • %U – user name of owner
  • %G – group name of owner
  • %C – SELinux security context string
  • %z – time of last status change, human-readable

5. Este es un ejemplo que muestra el uso de secuencias de formato aceptadas para sistemas de archivos.

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

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

  • %n – shows the file name
  • %a – print free blocks available to non-superuser
  • %b – outputs total data blocks in file system

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 formato de salida aceptadas, consulte la página de manual de estadísticas.

$ man stat 

En este artículo, hemos explicado cinco ejemplos de comandos de estadísticas para novatos en Linux. Utilice el formulario de comentarios a continuación para hacer cualquier pregunta.