Pesquisa de site

5 exemplos de comando ‘stat’ para iniciantes em Linux


O comando stat é um utilitário útil para visualizar o status do arquivo ou do sistema de arquivos. Recupera informações como tipo de arquivo; direitos de acesso em octal e legível por humanos; Cadeia de contexto de segurança do SELinux; hora de nascimento do arquivo, último acesso, última modificação de dados, última mudança de status legível por humanos e em segundos desde a Época e muito mais.

Possui a opção de especificar um formato personalizado em vez do padrão, para exibição de informações. Neste guia, veremos cinco exemplos de comandos stat para iniciantes no Linux.

Verifique o status do arquivo Linux

1. A maneira mais fácil de usar stat é fornecer um arquivo como argumento. O comando a seguir exibirá o tamanho, blocos, blocos IO, tipo de arquivo, valor do inode, número de links e muito mais informações sobre o arquivo /var/log/syslog, conforme mostrado na captura de tela:

$ 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: -

Verifique o status do sistema de arquivos

2. No exemplo anterior, o comando stat tratou o arquivo de entrada como um arquivo normal, entretanto, para exibir o status do sistema de arquivos em vez do status do arquivo, use a opção -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

Você também pode fornecer um diretório/sistema de arquivos como argumento, conforme mostrado.

$ 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 acompanhamento de links simbólicos

3. Como o Linux suporta links (simbólicos e links físicos), certos arquivos podem ter um ou mais links, ou podem até existir em um sistema de arquivo.

Para permitir que o stat siga links, use o sinalizador -L conforme mostrado.

$ 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: -

Use um formato personalizado para exibir informações

4. stat também permite que você use um formato específico ou personalizado em vez do padrão. O sinalizador -c é usado para especificar o formato usado, ele imprime uma nova linha após cada uso da sequência de formato.

Alternativamente, você pode usar a opção --printf que permite a interpretação de sequências de escape de barra invertida e desativa a impressão de uma nova linha final. Você precisa usar \n no formato para imprimir uma nova linha, por exemplo.

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

Significado das sequências de formato dos arquivos usados no exemplo acima:

  • %U – nome de usuário do proprietário
  • %G – nome do proprietário do grupo
  • %C – string de contexto de segurança SELinux
  • %z – hora da última mudança de status, legível por humanos

5. Aqui está um exemplo que mostra o uso de sequências de formatos aceitos para sistemas de arquivos.

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

Significado das sequências de formato usadas no comando acima.

  • %n – mostra o nome do arquivo
  • %a – imprime blocos gratuitos disponíveis para não-superusuários
  • %b – exibe o total de blocos de dados no sistema de arquivos

Imprimir informações em formato conciso

6. A opção -t pode ser usada para imprimir as informações de 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 observação, seu shell pode ter sua própria versão de stat. Consulte a documentação do seu shell para obter detalhes sobre as opções que ele suporta. Para ver todas as sequências de formato de saída aceitas, consulte a página do manual stat.

man stat 

Neste artigo, explicamos cinco exemplos de comandos stat para iniciantes no Linux. Use o formulário de feedback abaixo para fazer qualquer pergunta.