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

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

 MSalters28 сент. 2010 г., 16:22
Какая файловая система, возможно ext3?
 lepe07 авг. 2015 г., 07:49
Я только что заметил, что в ext4 (не уверен насчет других FS), если вы перечислите с помощью «ls -li» (чтобы перечислить inode), похоже, отображает дату создания. Я не нашел никаких ссылок на это, так что, возможно, я ошибаюсь (по крайней мере, это работает для меня).

Ответы на вопрос(7)

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

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

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

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

я только что закончил написание этого сценария, чтобы найти дату создания файла с помощью 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";
 the Tin Man21 янв. 2012 г., 09:46
Это НЕ возвращает время создания.
 Huygens05 июн. 2012 г., 10:46
Согласен с @theTinMan, этот код возвращает время изменения, а не время создания.
 Franklin Piat20 мар. 2015 г., 21:01
ctime - это время изменения, а не время создания!
 dmeister10 окт. 2010 г., 16:34

Этот маленький скрипт может получить дату создания 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
 Attila Fulop06 мар. 2014 г., 17:06
Я не вижуrealpath должен сделать это. Это утилита для преобразования имени файла в абсолютный путь (см.man realpath). То, что вы ищете, это имя файла относительно раздела. Я не знаю такого инструмента, но он, вероятно, существует в дикой природе.
 Attila Fulop06 мар. 2014 г., 17:08
Кроме того, вы правы, мой скрипт не работает, если целевой файл находится на отдельном разделе
 Rucent8807 мар. 2014 г., 04:27
Да, я просто указывал на это для тех, кто хочет использовать ваш сценарий. Помимо этого вопроса, он работает отлично.
 Rucent8806 мар. 2014 г., 12:26
Похоже, что realpath неправильно разрешает расположение файлов в / home, если / home - это отдельный раздел. Файл с именем / home / user / fname должен быть преобразован в user / fname.

также известное какctime, Это обновляется для различных системных вызовов, которые изменяют индекс, а не для данных, которые он содержит.

[email protected]:~$ stat -c %z .bashrc 
2010-08-17 11:53:56.865431072 +1000
связистат (1)стат (3)
 Matt Joiner09 апр. 2013 г., 12:46
@AttilaFulop: Дух. Вот почему я сказал «самый близкий» и подробно расскажу, чем он отличается от времени создания.
 Matt Joiner25 мар. 2015 г., 01:48
@FranklinPiat: Ты вообще читал мой ответ?
 Franklin Piat20 мар. 2015 г., 21:28
ctime - это время изменения, а не время создания! Вопрос был о времени создания. Изменение времени абсолютно не полезно для тех, кто ищет время создания.

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

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

Решение Вопроса

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

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

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

 jlliagre26 авг. 2015 г., 09:02
Все ссылки битые.
 Thariama14 янв. 2019 г., 09:09
похоже, что они не
 Thariama28 авг. 2015 г., 13:08
@jilagre: я удалил неработающие ссылки
 Erik10 янв. 2019 г., 00:11
Ссылки снова не работают в комментариях
 Matt Joiner28 сент. 2010 г., 17:52
Ссылки относительно ext4 crtime, пожалуйста.
 Thariama29 сент. 2010 г., 09:04

Ваш ответ на вопрос