Есть ли способ узнать время создания файла в ubuntu?

Я использую ubuntu и хочу узнать время создания файла, даже когда он модифицируется или доступен?

Ответ 1

К сожалению, Unix не сохраняет время создания файла.

Все, что вы можете использовать stat,

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

Примечание. При использовании типа файловой системы ext4 crtime доступен!

Ответ 2

Ближайшим доступным атрибутом является "время изменения", также известное как ctime. Это обновляется для различных системных вызовов, любых, которые изменяют индексный дескриптор, а не содержащихся в нем данных.

[email protected]:~$ stat -c %z .bashrc 
2010-08-17 11:53:56.865431072 +1000

Ссылки

Ответ 3

Этот маленький script может получить дату создания для ext4:

#!/bin/sh

fn=`realpath $1`
echo -n "Querying creation time of $1..."
sudo debugfs -R "stat $fn" /dev/sda4|grep crtime

Я назвал его fcrtime и поместил его в мою папку ~/bin. Поэтому в любой папке я могу использовать команду: fcrtime example.odp

Пример вывода:

crtime: 0x5163e3f0:12d6c108 -- Tue Apr 9 12:48:32 2013

По сравнению с тем же файлом:

  File: `example.odp'
  Size: 54962       Blocks: 112        IO Block: 4096   regular file
Device: 804h/2052d  Inode: 11019246    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/   fulop)   Gid: ( 1000/   fulop)
Access: 2013-04-09 13:20:05.263016001 +0300
Modify: 2013-04-09 13:20:05.227016001 +0300
Change: 2013-04-09 13:20:05.227016001 +0300
 Birth: -

ПРИМЕЧАНИЯ

  • realpath обычно не устанавливается по умолчанию. В Ubuntu, например. установите его с помощью sudo apt-get install realpath
  • Замените /dev/sda4, если необходимо, тем, который вы получили от mount|grep ext4

Ответ 4

Согласно http://en.wikipedia.org/wiki/Comparison_of_file_systems, это доступно для файловых систем ext4, btfrs, FAT, NTFS и UDF, а также для некоторых других, вряд ли встретится. Он не доступен на ext2 или ext3, возможно, наиболее распространенных форматах файловой системы в Ubuntu.

Вам понадобится патч ядра: http://lwn.net/Articles/394391/. Видимо, это потому, что Линус отклонил атрибут времени создания на том основании, что кто-то назвал его "otime", а кто-то еще назвал его "btime", и поэтому идея должна быть бесполезной.

Ответ 5

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

stat --printf='%w' yourfile   #human readable

stat --printf='%W' yourfile   #seconds from Epoch , 0 if unknown

Примечание: этот вопрос является дубликатом Как найти дату создания файла?. Кроме того, обязательно прочтите этот вопрос Какие файловые системы в Linux хранят время создания?.

Ответ 7

Ребята, я только что написал этот script этот script, чтобы найти дату создания файла с помощью perl:

use File::stat;
if (  scalar( @ARGV ) == 0 ) {
 die("type  a file  name  ex:perl filestat.pl <filename>");    
}
my $filename =  $ARGV[0] ;
my @info = stat($filename);
print "Creation time :",scalar localtime stat($filename)->ctime;
print "\n";