ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Команда Stat в Linux

Команда Stat в Linux

stat утилита командной строки, которая отображает подробную информацию о данных файлах или файловых системах

Эта статья объясняет, как использовать команду stat.

 

Синтаксис команды stat следующий:

stat [OPTION]... FILE...

 

stat принимает одно или несколько входных имен FILE и включает в себя ряд параметров, которые управляют поведением команды и выводом.

Давайте посмотрим на следующий пример:

stat file.txt

 

Вывод будет выглядеть примерно так:

  File: file.txt
  Size: 4030      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 13633379    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   linuxize)   Gid: ( 1000/   linuxize)
Access: 2019-11-09 09:52:17.991979701 +0100
Modify: 2019-11-09 09:52:17.971979713 +0100
Change: 2019-11-09 09:52:17.971979713 +0100
 Birth: -

 

При вызове без каких-либо параметров stat, отображается следующая информация о файле:

 

Чтобы получить информацию о файловой системе, в которой находится данный файл, вместо информации о самом файле, используйте параметр -f, ( —file-system):

stat -f file.txt

 

Вывод команды будет выглядеть так:

  File: "package.json"
    ID: 8eb53097b4494d20 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 61271111   Free: 25395668   Available: 22265851
Inodes: Total: 15630336   Free: 13979610

 

Когда stat вызывается с параметром -f, он показывает следующую информацию:

 

По умолчанию stat не следует символическим ссылкам. Если вы запустите команду по символической ссылке, вывод будет содержать информацию о символической ссылке, а не о файле, на который она указывает:

stat /etc/resolv.conf

 

  File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  Size: 39        	Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d	Inode: 8126659     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
 Birth: -

 

Для разыменования (следования) символической ссылки и отображения информации о файле, на который указывает символическая ссылка, используйте параметр -L, ( —dereference):

stat -L /etc/resolv.conf

 

  File: /etc/resolv.conf
  Size: 715       	Blocks: 8          IO Block: 4096   regular file
Device: 17h/23d	Inode: 989         Links: 1
Access: (0644/-rw-r--r--)  Uid: (  101/systemd-resolve)   Gid: (  103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
 Birth: -

 

Команда stat имеет две опции, которые позволяют вам настроить вывод в соответствии с вашими потребностями:, -c ( —format=»format») и —printf=»format».

Разница между этими двумя опциями заключается в том, что когда два или более файлов используются в качестве оперантов, с помощью —format автоматически добавляется новая строка после вывода каждого операнда. В —printf трактует обратный слеш.

Существует множество директив формата для файлов и файловых систем, которые можно использовать с —format и —printf.

Например, чтобы просмотреть только тип файла, который вы будете использовать:

stat --format="%F" /dev/null

 

character special file

Вы можете комбинировать любое количество директив форматирования и, при необходимости, использовать пользовательские разделители между ними. Разделитель может быть одним символом или строкой:

stat --format="%n,%F" /dev/null

 

/dev/null,character special file

 

Чтобы интерпретировать специальные символы, такие как перевод строки или табуляция, используйте параметр —printf:

stat --printf='Name: %n\nPermissions: %a\n' /etc

 

\n печатает новую строку:

Exit mobile version