- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Как я нахожу время создания файла?
- 5 ответов
- Как узнать дату создания файла?
- Есть ли способ узнать время создания файла в ubuntu?
- 7 ответов
- ссылки
- 🐧 Как узнать дату последнего изменения файла на Linux
- 1. Использование команды stat
- 2. Использование команды date
- 3. Использование команды ls -l
- 4. Использование httpie
- Заключение
[ ls ] Как узнать время создания файла?
Я в ступоре. Мне нужно сделать простое действие — распечатать список файлов, чтобы рядом с именем файла показывалось время его создания.
Документация по ls написана для экстрасенсов, а я им не являюсь.
Re: [ ls ] Как узнать время создания файла?
Файловые системы не хранят время создания файла
есть mtime, atime, ctime
- m — modify
- a — access
- c — change (metadata)
[ ls ] Как узнать время создания файла?
> Файловые системы не хранят время создания файла
Вот так сюрприз. Что, интересно, мешает хранить время создания?
[ ls ] Как узнать время создания файла?
>Что, интересно, мешает хранить время создания?
Re: [ ls ] Как узнать время создания файла?
Что, интересно, мешает хранить время создания?
А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
Сегодня при наличии рабочего inotify можно вести отдельный лог создания фалов (IN_CREATE File/directory created in watched directory)
[ ls ] Как узнать время создания файла?
>А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
Как только у нас чего нету мы говорим: «А зачем?». 🙂
[ ls ] Как узнать время создания файла?
Re: [ ls ] Как узнать время создания файла?
Как только у нас чего нету мы говорим: «А зачем?». 🙂
Может потому и нет, что незачем? Я потому и привел довод, что у меня за 10 лет админства не было такой потребности.
[ ls ] Как узнать время создания файла?
>Может потому и нет, что незачем? Я потому и привел довод, что у меня за 10 лет админства не было такой потребности.
Да это трололо было. ИМХО, ты прав, для меня так же creation time = modification time
[ ls ] Как узнать время создания файла?
Ну это естественное желание человека — знать когда файл или каталог был создан. Например, в каталоге /home ты бы мог узнать, когда какой пользователь был создан. Или по дате создания конфигурационного файла какого-нить сервиса узнать, стоял он уже в системе на какой-то момент или нет.
[ ls ] Как узнать время создания файла?
> А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
А время модификации метаданных, хоть раз понадобилось? ИМХО, это еще более бесполезная вещь, чем время создания. И тем не менее оно есть.
Re: [ ls ] Как узнать время создания файла?
А время модификации метаданных, хоть раз понадобилось? ИМХО, это еще более бесполезная вещь, чем время создания. И тем не менее оно есть.
когда был сделан chmod/chown данному файлу весьма интересный вопрос
[ ls ] Как узнать время создания файла?
> когда был сделан chmod/chown данному файлу весьма интересный вопрос
А зачем? За несколько лет не припомню ни одного случая, когда бы это понадобилось.
Источник
Как я нахожу время создания файла?
Я должен найти время создания файла, когда я прочитал некоторые статьи об этой проблеме, все упомянули, что нет никакого решения (как Site1, Site2).
Когда я попробовал stat команда, указывает это Birth: — .
Таким образом, как я могу найти время создания файла?
5 ответов
Есть способ узнать дату создания каталога, просто выполните следующие действия:
Узнайте inode каталога с помощью ls -i команда (скажем, ее X )
Узнайте, на каком разделе сохранен ваш каталог, с помощью команды df -T / path (скажем, это на / dev / sda1 )
Теперь используйте эту команду: sudo debugfs -R ‘stat ‘ / dev / sda1
В выводе вы увидите:
crtime — дата создания вашего файла.
Что я тестировал :
- Создал каталог в определенное время.
- Получил доступ к нему.
Изменил его, создав файл.
Я попробовал команда, и она дала точное время.
@Nux нашел отличное решение для этого, которое вы все должны проголосовать. Я решил написать небольшую функцию, которую можно было бы использовать для прямого запуска всего. Просто добавьте это в свой
Теперь вы можете запустить get_crtime , чтобы распечатать даты создания любого количества файлов или каталогов:
TL; DR: Просто беги: sudo debugfs -R ‘stat / path / to / your / file’ / dev /
(Чтобы определить вашу fs, запустите df -T / path / to / your / file , скорее всего, это будет / dev / sda1 ).
Длинная версия:
Мы собираемся запустить две команды:
Узнать имя раздела для ваш файл.
Вывод будет выглядеть следующим образом (сначала имя раздела):
Узнать время создания этого файла.
В выходных данных найдите ctime .
Неспособность stat показать время создания связана с ограничением системного вызова stat (2) , структура возврата которого не включает поле для времени создания. Однако, начиная с Linux 4.11 (т.е. 17.10 и новее *), доступен новый системный вызов statx (2) , который включает время создания в его возвращаемую структуру.
* И, возможно, в более старых версиях LTS, использующих ядра аппаратного стека (HWE). Проверьте uname -r , чтобы убедиться, что вы используете ядро версии не ниже 4.11 для подтверждения.
К сожалению, вызывать системные вызовы непосредственно в программе на языке C непросто. Обычно glibc предоставляет оболочку, которая упрощает работу, но glibc добавила оболочку только для statx (2) в августе 2018 г. (версия 2.28 , доступна в 18.10). Сама команда stat получила поддержку statx (2) только в GNU coreutils 8.31 (выпущена в марте 2019 г.) , однако даже только Ubuntu 20.04 имеет coreutils 8.30 .
Но я не думаю, что это будет перенесено на выпуски LTS, даже если они получат или уже используют новые ядра или glibcs. Поэтому я не ожидаю, что stat в любой текущей версии LTS (16.04, 18.04 или 20.04) когда-либо напечатает время создания без ручного вмешательства.
В 18.10 и новее, вы можете напрямую использовать функцию statx , как описано в man 2 statx (обратите внимание, что на странице руководства 18.10 неверно указано, что glibc еще не добавил оболочку).
в Ubuntu 20.10 вы сможете использовать stat напрямую:
К счастью, для старых систем @whotwagner написал пример программы на C , в которой показано, как использовать Системный вызов statx (2) в системах x86 и x86-64. Его вывод имеет тот же формат, что и stat по умолчанию, без каких-либо параметров форматирования, но его просто изменить, чтобы печатать только время рождения.
Сначала клонируйте его:
Вы можете скомпилировать код statx.c или, если вам просто нужно время рождения, создайте Birth.c в клонированном каталоге со следующим кодом (который является минимальной версией ] statx.c печатает только временную метку создания, включая точность наносекунды):
Теоретически это должно сделать время создания более доступным:
- должно поддерживаться больше файловых систем, чем только ext * ( debugfs — это инструмент для файловых систем ext2 / 3/4, который нельзя использовать в других)
- вам не нужен root, чтобы использовать это (за исключением установки некоторых необходимых пакетов, таких как make и linux-libc-dev ).
Тестирование системы xfs, например:
Однако это не сработало для NTFS и exfat. Я полагаю, что файловые системы FUSE для них не учитывали время создания.
Источник
Как узнать дату создания файла?
Я пользуюсь Bash в Debian GNU/Linux 6.0. Можно ли получить дату/время создания файла? Не дата и время конфигурации. ls -lh a.txt и stat -c %y a.txt оба дают время модификации. Каждый файл имеет три разных связанных точны: время последнего доступ к данным, время (форма протекания физических и психических процессов, условие возможности изменения) последней модификации данных и время, когда файл статус изменен. Эти значения возвращаются в файле структура характеристик struct stat, как представлено в . Стандарт POSIX определяет только три отдельных временных метки для каждого файла: время заключительного доступа к данным, время последней модификации данных и время последнего изменения статуса файла. Тем не меньше, современные файловые системы Linux, такие как ext4, Btrfs и JFS, сохраняют время создания файла (вдобавок время рождения), но используют разные имена для данного поля ( crtime в ext4, otime в Btrfs и JFS). Хотя в настоящее время Linux не предоставляет API-интерфейс ядра для доступа к временам создания файла , простонар в поддерживающих их файловых системах.
Используйте stap ( «SystemTap» ) для творения собственного API ядра. Ниже приведен пример извлечения времени создания ext4. Вы можете вытянуть время создания ext4 в системах Fedora 19. Вот мой:
$ uname -a Linux steelers.net 3.11.1-200.fc19.i686.PAE #1 SMP Sat Sep 14 15:20:42 UTC 2013 i686 i686 i386 GNU/Linux
Ясно, что inodes на моих ext4-разделах имеют время создания. Вот сценарий оболочки, который оприделяет индексный дескриптор, связанный с именем файла, а затем добавляет результат stat с порой создания, используя stap («systemtap»). NB: Это просто демо-версия и очень неэффективна, потому что модуль ядра создается, загружается и выгружается для каждого исполнения. Это также, вероятно, весьма хрупко, поскольку проверка ошибок не выполняется. Правильный API ядра предпочтительнее, но этот script можно сделать намного более эффективным и прочитать время создания нескольких файлов / inodes.
В ext4 это может быть; потому что файловая система ext4 хранит время создания файла. Но все же вы обнаружите, что команда stat не сможет показать дату, это потому, что я думаю, что у ядра все еще нет API-интерфейсов. В любом случае время появления файла хранится в ext4 и вы можете найти его, хотя это не прямой метод, но используя debugfs
sudo debugfs -R «stat / ABSOLUTE / PATH» / dev / sdxX | grep crtime
Делать условие, если файл создали не позднее 2х недель. пока написал определение даты творения файла, но почему то выводит всегда одно и то же, хотя должны быть разные даты. образчик вывода: 01.01.1970 03:00:00
echo date(«d.m.Y H:i:s.», filemtime($out_1));
$filetime = filectime(«test.txt»);
$time = microtime(true);
$endtime = $time — $filetime;
echo «Файл был сотворен $endtime секунд назад.»;
Тут понадобилось на шлюзаке изменить дату создания файла 🙂 для чего не скажу , а как сделал читайте дальше ))) Для того что бы изменить дату файла на Freebsd (да и вобщем в Unix или Linux) нужно ввести след команду:
touch -t 201208171310 file
ВВ — век,ГГ — год, ММ — луна, ДД — день, чч — часы, мм — минуты, СС — секунды (если не задать секунды то там будет 0)
Источник
Есть ли способ узнать время создания файла в ubuntu?
Я использую ubuntu и хочу знать время создания файла, даже когда он будет изменен или доступен ?
7 ответов
к сожалению Unix не хранят время создания файла.
все, что вы можете получить с помощью stat is
- время последнего доступа
- время последней модификации
- время последнего изменения состояния
Примечание: при использовании типа файловой системы в ext4 crtime доступно!
ближайший доступный атрибут «время перемен», также известный как ctime . Это обновляется для различных системных вызовов, любые, которые изменяют индекс, а не данные, которые он содержит.
ссылки
этот маленький скрипт может получить дату создания для ext4:
я назвал его fcrtime и положил его в мой . Поэтому в любой папке я могу использовать команду типа: fcrtime example.odp
crtime: 0x5163e3f0:12d6c108 — Tue Apr 9 12:48:32 2013
по сравнению с тем же файлом:
Примечания
- realpath обычно не устанавливается по умолчанию. В Ubuntu например. установите его с sudo apt-get install realpath
- заменить /dev/sda4 при необходимости с тем, который вы получаете от mount|grep ext4
согласно http://en.wikipedia.org/wiki/Comparison_of_file_systems, это доступно для файловых систем ext4, btfrs, FAT, NTFS и UDF, а также некоторых других, с которыми вы вряд ли столкнетесь. Он недоступен на ext2 или ext3, вероятно, наиболее распространенных форматах файловой системы в Ubuntu.
вам понадобится патч ядра, хотя:http://lwn.net/Articles/394391/. По-видимому, это потому, что Линус отверг атрибут времени создания на том основании, что кто-то кто-то назвал его» отим», а кто-то другой — «бтим», и поэтому идея должна быть бесполезной.
время создания, известно как file рождения времени и поддерживается в некоторой файловой системе, только с некоторыми ядрами. Команда будет Мохсен Pahlevanzadeh ответ:
Примечание: этот вопрос является дубликатом Как найти дату создания файла?. Кроме того, обязательно прочитайте этот вопрос какие файловые системы в Linux хранят время создания?.
Источник
🐧 Как узнать дату последнего изменения файла на Linux
Иногда вам может потребоваться проверить подробную информацию о файле (отметку времени), например дату его последнего изменения.
Это может пригодиться, когда вы хотите проверить, когда этот файл последний раз редактировался.
Кроме того, это гарантирует, что у вас установлена последняя версия файла.
В этой статье вы узнаете 4 способа узнать дату последнего изменения файла в Linux.
1. Использование команды stat
Команда ls -l дает вам основную информацию о файле, такую как права собственности на файл и разрешения, размер файла и дата создания.
Команда stat возвращает атрибуты файла с подробной информацией, например, когда последний раз открывался и изменялся файл.
Синтаксис довольно простой.
После stat следует имя файла или полный путь к этому файлу.
Из вышеприведенного вывода мы можем ясно увидеть, когда к файлу в последний раз обращались (Дата доступа), Дату изменения, Дату изменения других параметров.
Если вы хотите просмотреть только дату изменения и опустить всю остальную информацию, выполните следующую команду:
2. Использование команды date
Команда date в основном синтаксисе отображает текущую дату.
Однако при использовании с параметром -r вы можете отобразить дату последней модификации файла, как показано далее:
3. Использование команды ls -l
Команда ls -l обычно используется для отображения дополнительной информации о файлах, например права собственности на файл и права доступа, размер и дата создания.
Чтобы перечислить и отобразить время последнего изменения, используйте параметр lt, как показано далее.
4. Использование httpie
Другой способ проверить дату последнего изменения – использовать клиентский инструмент командной строки httpie.
Инструмент обычно используется для взаимодействия с HTTP-серверами и API-интерфейсами, а также может проверять, когда последний раз был изменен файл, находящийся на веб-сервере.
Но сначала вам нужно установить его с помощью команды:
Ubuntu / Debian / Mint:
Чтобы проверить, когда последний раз был изменен файл на веб-сервере, используйте синтаксис:
Заключение
На этом статья завершается.
В этом руководстве мы описали различные способы, с помощью которых вы можете узнать дату последнего изменения файла в системе Linux и даже файла, размещенного на веб-сервере, с помощью инструмента httpie.
Надеюсь, у вас не возникнет проблем с просмотром времени последнего изменения файлов.
Источник