1. время

1. время

Есть ли в Linux команда для проверки всех временных меток файла?

Я пытаюсь увидеть даты последнего изменения, создания и просмотра файла.

решение1

Команда называетсяstat.

$ stat test
234881026 41570368 -rw-r--r-- 1 werner staff 0 0 "Feb  7 16:03:06 2012" "Feb  7 16:03:06 2012" "Feb  7 16:03:06 2012" "Feb  7 16:03:06 2012" 4096 0 0 test

Если вы хотите изменить формат, обратитесь к страницам руководства, поскольку вывод зависит от ОС и различается в Linux/Unix.

Как правило, время можно узнать и через обычный список справочников:

  • ls -lвыводит последний раз, когда содержимое файла было изменено,mtime
  • ls -lcвыводит последнее время изменения статуса файла, ctime(Какая разница?)
  • ls -luвыводит время последнего доступа atime(хотя полезность этой концепцииподлежит обсуждению)

И, конечно, ctimeне записывает, когда файл был "создан". Спецификация POSIX определяет только три временные метки, нонекоторые файловые системы Linuxсохранить время рождения/время создания.Как узнать дату создания файла?В такой поддерживаемой конфигурации можно использовать

stat --printf '%n\nmtime: %y\nctime: %z\natime: %x\ncrtime:%w\n'

решение2

Есть толькоТРИотдельные значения времени, хранящиеся для каждого из ваших файлов, как определеноСтандарт POSIX:http://pubs.opengroup.org/onlinepubs/9699919799/(видетьБазовые определенияраздел -> 4. Общие понятия -> 4.8 Обновление времени файла)

Каждый файл имеет три различных связанных временных метки: время последнегодоступ к данным, время последнегомодификация данных, и времястатус файла последний раз изменен. Эти значения возвращаются в структуре характеристик файла struct stat, как описано в<sys/stat.h>.

И из<sys/stat.h>:

atime is for Last data access timestamp.
mtime is for Last data modification timestamp.
ctime is for Last file status change timestamp.

Следующие примеры показывают разницу междувремя,mtimeиctime, эти примеры в GNU/Linux BASH. Вы можете использовать stat -xв Mac OS X или другом дистрибутиве BSD, чтобы увидеть похожий формат вывода.

$ stat --version
stat (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Michael Meskes.
$
$ touch test
$ stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 811h/2065d  Inode: 98828525    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  514/    rank)   Gid: (  514/    rank)
Access: 2014-03-16 10:58:28.609223953 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 10:58:28.609223953 +0800

Когда файл только что создан, все три временные метки совпадают.


1. время

Во-первых, давайтедоступданные файла, прочитав их ( lessили vim), распечатав ( cat) или скопировав в другой файл ( cp).

$ cat test #Nothing will be printed out, since the file is empty
$ stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 811h/2065d  Inode: 98828525    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  514/    rank)   Gid: (  514/    rank)
Access: 2014-03-16 10:59:13.182301069 +0800  <-- atime Changed!
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 10:58:28.609223953 +0800

2. время

Теперь давайтеизменятьстатус файла, изменив разрешение ( chmod) или переименовав его ( mv)

$ chmod u+x test
$ stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 811h/2065d  Inode: 98828525    Links: 1
Access: (0764/-rwxrw-r--)  Uid: (  514/    rank)   Gid: (  514/    rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 11:04:10.178285430 +0800  <-- ctime Changed!
$    
$ mv test testing
$ stat testing
  File: `testing'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 811h/2065d  Inode: 98828525    Links: 1
Access: (0764/-rwxrw-r--)  Uid: (  514/    rank)   Gid: (  514/    rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 11:06:33.342207679 +0800  <-- ctime Changed again!

Обратите внимание, что до сих пор содержимое (данные) файла остается таким же, как и при его создании.


3. время

Давайте наконецизменитьсодержимое файла путем его редактирования.

$ echo 'Modify the DATA of the file' > testing
$ echo 'Modify the DATA of the file also change the file status' > testing
$ stat testing
  File: `testing'
  Size: 56          Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d  Inode: 98828525    Links: 1
Access: (0764/-rwxrw-r--)  Uid: (  514/    rank)   Gid: (  514/    rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 11:09:48.247345148 +0800  <-- mtime Changed!
Change: 2014-03-16 11:09:48.247345148 +0800  <-- ctime also Changed!

4. время рождения

Также обратите внимание, что более новые версии stat(например, stat --version 8.13Ubuntu 12.04) имеют 4-ю временную метку -Время рождения(время создания файла). Хотя сейчас может не показывать правильное время:

$ stat --version
stat (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Michael Meskes.
$
$ stat birth_time
  File: `birth_time'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 805h/2053d  Inode: 4073946     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ bingyao)   Gid: ( 1000/ bingyao)
Access: 2014-03-16 10:46:48.838718970 +0800
Modify: 2014-03-16 10:46:48.838718970 +0800
Change: 2014-03-16 10:46:48.838718970 +0800
 Birth: -

Связанный контент