Төлем әдістері Abuse

Linux жүйесінде stat командасы не істейді

14.11.2021, 16:15

Файлдық жүйедегі әрбір файл мен қалтада осы нысанның метадеректерін сақтайтын Inode құрылымы бар. Ол файлдың иесін, иеленушілер тобын, өзгерту уақытын, жасау уақытын және файлдың кіру уақытын, сондай-ақ басқа ақпаратты сақтайды. Оны файлдық жүйені жөндеу құралдарының көмегімен ғана емес көруге болады. ls утилитасы белгілі бір ақпаратты көрсетеді, бірақ көбірек қажет болса, stat пәрменін пайдалануға болады. Төменде біз бұл пәрменді Linux жүйесінде қалай пайдалану керектігін айтамыз.

Команда не береді?

Пәрмен синтаксисі қарапайым. Сіз оған опцияларды және ақпаратты көргіңіз келетін файлға жолды беруіңіз керек:

 $ stat [options] /path/to/file

Опциялардан өтудің қажеті жоқ және олардың көпшілігі жоқ:

-L, dereference - символдық сілтеменің орнына файл ақпаратын көрсету;

-f, --file-system - файл орналасқан файлдық жүйе туралы ақпаратты көрсету;

-c, --forma - стандартты емес шығару пішімін көрсетуге мүмкіндік береді, әрбір файл жаңа жолда шығарылады;

--printf - --format ұқсас, тек жаңа жол үшін пайдалану керек;

-t, --terse - ақпаратты өте қысқа түрде, бір жолда бейнелеу;

--version - қызметтік бағдарлама нұсқасын көрсету.

Қолдану мысалдарын қарастырайық. Файл туралы ақпаратты көру үшін файлға жолды жібере отырып, бағдарламаны опцияларсыз іске қосыңыз, мысалы /etc/passwd :

 $ stat /etc/passwd 

Бағдарламаның шығуы:

File – ақпарат көрсетілетін файлға апаратын жол;

Size ( Size ) - байттағы файл өлшемі;

IO Block Block – файлдық жүйе блогының байттағы өлшемі;

Blocks – файл алып жатқан файлдық жүйе блоктарының саны;

Device - құрылғының идентификаторы, мысалы, файл сақталған HDD;

Inode – осы файлдың бірегей Inode нөмірі;

Links – осы файлға қатты сілтемелер саны;

Access – файлға кіру құқығы;

Uid – файлды иеленетін пайдаланушының идентификаторы және аты;

Gid – файл тобының идентификаторы және аты;

Access – файлға соңғы қол жеткізу уақыты;

Modified ( Modify ) - файл мазмұны соңғы рет өзгертілген уақыт;

Change – файл атрибуттары немесе файл мазмұны соңғы рет өзгертілген уақыт;

Жасалған ( Birth ) - бастапқы файлды жасау күнін көрсету үшін сақталған, бірақ әлі орындалмаған.

Уақыт форматы туралы аздап айту керек. Мысалы, файлға соңғы қол жеткізу уақыты 2020-12-02 18:25:01.043831739 +0200. Бұл уақыт уақыт белдеуін ескере отырып көрсетіледі. Ал +0200 сандары бұл файлды жасаған немесе өзгерткен компьютердегі уақыт белдеуі UTC, яғни қысқы уақытта Еуропа/Киевке қарағанда екі сағат кеш екенін көрсетеді.

Егер сіз қызметтік бағдарламаға символдық сілтемені беруге тырыссаңыз, ол тек сілтеменің Inode ішінен ақпаратты көрсетеді:

 $ stat /etc/passwdlin

Сілтеме көрсететін файл туралы ақпаратты көру үшін -L опциясын пайдалану керек:

 $ stat -L /etc/passwdlink 

Бір файлды емес, бірнеше файлды тасымалдауға болады:

 $ stat /etc/passwd /etc/group

Шығаруды пішімдеу үшін келесі таңбалар тізбегін пайдалануға болады:

%A - қол жеткізу құқығы;

%b - басып алынған блоктар саны;

%F - файл түрі;

%g - файлдар тобының идентификаторы;

%G - файлдар тобының аты;

%i - инод идентификаторы;

%n - файл аты;

%s - файл өлшемі;

%u – файл иесінің идентификаторы;

%U - файл иесінің аты;

%x – соңғы қол жеткізу уақыты;

%y - соңғы мазмұнды өзгерту уақыты;

%z - мазмұнның немесе атрибуттардың соңғы өзгеру уақыты.

Бұл барлық ықтимал тізбектерден алыс, сіз қызметтік көмектен көбірек таба аласыз:

 $ man stat

Мысалы, тек файлдың атын және оның мазмұнын соңғы өзгерту уақытын көрсетейік:

 $ stat --printf "File %n has been modified %y " /etc/passwd /etc/group 

Егер файл орналасқан файлдық жүйе туралы ақпаратты көргіңіз келсе, -f опциясын пайдалануыңыз керек:

 $ stat -f /etc/passwd 

Утилита көрсететін өрістер нені білдіретінін қарастырайық:

File – файл аты;

Type - файлдық жүйе түрі;

ID – файлдық жүйе идентификаторы;

Атау ұзындығы ( Namelen ) - файлдық жүйедегі аттың максималды ұзындығы;

Block size өлшемі - оңтайлы өнімділік үшін бір оқу немесе жазу сұрауы бойынша деректер көлемі;

Fundamental block size өлшемі файлдық жүйедегі блоктың физикалық өлшемі болып табылады.

Одан кейін жүйедегі блоктардың жалпы саны және бос блоктар саны келеді.