Операционната система Linux следи три времеви марки за всеки файл във вашата система. Тези времеви марки позволяват да откриете кога файлът е актуализиран последно. Но какво означават всички те? И как да разберете тези времена за файл? Има ли разлика, когато става въпрос за директории?

Разбирането на атиме, ctime и mtime може да отговори на всички тези въпроси. Това са трите времеви клейма, които файловите системи на Unix проследяват. Ако някога се наложи да разберете подробности за това какво и кога се е променило, прочетете нататък.

Какви са трите Unix Timestamps?

Всеки файл има три отметки, свързани с него. Linux ги съхранява в Unix формат за време който измерва секунди от епохата. Трите времеви марки обикновено се наричат ​​атиме, ctime и mtime.

The mtime е най-често срещаният и често най-полезният. Това означава модифицирано време. Това е моментът, в който съдържанието на файла е записано за последно на диск.

Малко по-различно е ctime което означава промяна на времето. Този времеви клеймо проследява промени в метаданните като собственост и разрешения. Включва преименуване на файл - поне в типичните съвременни ОС Linux. Но също така се актуализира, когато съдържанието на файла се промени, така че винаги е толкова актуално, колкото mtime.

instagram viewer

Третият клеймо е време, който съхранява последния път, когато някой е имал достъп до файла.

Как клеймотата за време се прилагат към директориите

Директорията на Linux е по същество списък с файловете в тази директория. Така че създаването на файл в директорията ще актуализира mtime на тази директория. Изброяване на файловете в директорията с помощта на ls например, актуализира времето си за достъп. И както при файл, промяната на разрешенията на директорията или името актуализира ctime.

Ами времето за създаване?

Може да ви изненада да научите, че Linux просто не следи времето за създаване. Първоначално може да предположите това ctime означава време за създаване. По същия начин може да мислите за това като за много полезно нещо, за да можете да разберете.

Много приложения запазват файлове, като ги създават всеки път от нулата. Това би направило използването на време за създаване подвеждащо.

Как да видите различните клеймота

Най-простият начин за получаване на информация за времеви клей е с на ls команда. Дългият формат по подразбиране показва подробности за mtime:

$ дата
6 март 16:57:01 GMT 2021
$ echo "здравей, свят"> tmp
$ ls -l tmp.txt
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Вместо това можете да покажете атимето, като използвате -u флаг:

$ дата
Събота 6 март 16:59:33 GMT 2021
$ котка tmp
Здравей свят
$ ls -lu tmp
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Последният ред потвърждава, че mtime на този файл е различен от времето. И накрая, използвайте -° С флаг за преглед на ctime:

$ дата
Събота, 6 март 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Този път потвърждаваме, че и трите пъти са различни и правилни: модифицирахме, след което осъществихме достъп и след това променихме файла в този ред.

Алтернатива на ls е статистика команда. Тази команда показва подробности от ниско ниво от inode на файла. Улеснява проверката и на трите пъти наведнъж. Той също така заобикаля проблема с неинтуитивните -u флаг. Ето пример за изход за същия файл:

$ stat tmp2
Файл: `tmp2 '
Размер: 13 блока: 8 IO блок: 4096 обикновен файл
Устройство: 801h / 2049d Inode: 327688 Връзки: 1
Достъп: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Достъп: 2021-03-06 16: 59: 45.000000000 +0000
Промяна: 2021-03-06 16: 57: 59.000000000 +0000
Промяна: 2021-03-06 17: 02: 43.000000000 +0000

Как да актуализирате времеви марки

The докосване команда променя времето за модификация и достъп на файл. Това също е удобен начин за създаване на празен файл, което ще направи, ако файлът вече не съществува:

докоснете tmp

По подразбиране ще зададе mtime и atime на текущото време. Можете да зададете различно време с флаг:

докосване -t 202103061200 tmp

Можете също така да зададете само mtime или atime с и  съответно флагове:

touch -t 202103061300 -m tmp

Имайте предвид, че ctime винаги се актуализира, когато зададем време и mtime.

Как да намерим файлове въз основа на времеви марки

The намирам command е друг инструмент, който действа върху времеви марки. Той може да филтрира файлове въз основа на атиме, ctime или mtime. Например:

намирам. -амин 15

ще намери файлове, достъпни преди точно 15 минути, докато:

намирам. -мтайм -2

ще намери файлове, модифицирани през последните два дни.

Linux следи всеки файл три пъти

Най-често препращаната времева марка на файла е mtime. Това е датата и часът, които например показва списък с файлове. Но и другите две времеви марки могат да бъдат полезни, стига да разберете за какво се отнасят. Винаги помнете, че ctime представлява промяна време, не творение време.

Команди като touch и stat са полезни членове на инструментариума на командния ред на Linux. Тези команди ще подобрят работния процес на Linux, като ви позволят бързо да създавате нови файлове.

електронна поща
Справочник за команди на Linux за команди

Този прост мамят лист ще ви помогне за нула време да се почувствате комфортно с терминала на командния ред на Linux.

Свързани теми
  • Linux
  • Управление на файлове
  • Linux Distro
За автора
Боби Джак (Публикувани 33 статии)

Боби е технологичен ентусиаст, който работи като разработчик на софтуер в продължение на почти две десетилетия. Той е запален по игрите, работи като редактор на рецензии в списание Switch Player и е потопен във всички аспекти на онлайн публикуването и уеб разработката.

Още от Боби Джак

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.