Я использую 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 хранят время создания?.
Ответ 6
Yup - stat(): http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html
Ответ 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";