Можно ли проверить, когда создается папка или файл?

Я ищу способ проверить, когда была создана конкретная папка, а также определенный файл. Является ли это возможным?

Моя система использует файловую систему ext3.

Спасибо большое!

5
задан 11 November 2011 в 20:05

4 ответа

Большинство Unix-подобных операционных систем не сохраняют время создания файла или каталогов. Вы можете получить время их модификации, время последнего доступа и время изменения inode с помощью команд ls и stat.

Но есть некоторые сторонние инструменты, как мы можем видеть в других ответах. И у FreeBSD есть такая возможность. См. Комментарий @Graham Perrin, в котором говорится об этом.

9
ответ дан 25 May 2018 в 16:59
  • 1
    Я использую последнюю версию Ubuntu 11.10. По умолчанию установка установлена. Я ничего не изменил. Значит ли это, что моя файловая система не должна хранить время создания? Большое спасибо! :-) – Anand 11 November 2011 в 15:38
  • 2
    Как я уже сказал, нет информации о времени создания literal . Он изменяет файл по файлу, но если время модификации не изменяется с момента установки, это может быть время создания, конечно. Опять же, этот вопрос и его ответ зависят от случайных случаев. – heartsmagic 11 November 2011 в 15:44
  • 3
    это действительно зависит от файловой системы. По умолчанию Ubuntus - ext4, который поддерживает время создания. См. Мой ответ. – xubuntix 11 November 2011 в 15:56
  • 4
    Кстати, файлы и каталог, содержащий файлы, постоянно меняются с момента создания. – Anand 11 November 2011 в 18:31
  • 5
    «Unix-подобные операционные системы не сохраняют время создания файла или каталогов ... " слишком широкое утверждение. Рассмотрим unix.stackexchange.com/questions/20460/… – Graham Perrin 26 March 2017 в 04:00

Предполагая, что вы используете ext4, вы можете увидеть, когда был создан файл. Файловая система ext4 сохраняет это как crtime.

Вы можете получить эту информацию с помощью команды debugfs.

debugfs , что вы можете запускать с привилегиями суперпользователя для печати crtime файла. (Обратите внимание, что он требует рубина и имеет ошибку в первой строке: #!/usr/bin/env ruby)

5
ответ дан 25 May 2018 в 16:59
  • 1
    Благодаря xubuntix, я установил ruby ​​и код. Это не работает. то я обнаружил, что моя файловая система, к сожалению, ext3. :-( – Anand 11 November 2011 в 18:30
  • 2
    @xubuntix, это хорошая информация, и я понимаю, что я немного отстаю от разработок :) Для этого нужен весь скрипт? С debugfs мы не можем получить crtime? т.е.: debugfs -R 'stat ' file_name – heartsmagic 11 November 2011 в 19:09
  • 3
    да, только debugfs также даст вам crtime, но, по крайней мере, когда я это пробовал, необходимы дополнительные шаги. И просто чтобы быть ясным: я не писал сценарий, но я думал, что это удобно ... – xubuntix 12 November 2011 в 00:50
  • 4
    @xubuntix Спасибо за указание на скрипт Ruby, но хотя у меня есть файловая система ext4, он выходит с сообщением об ошибке: crtime.ruby:47:in & lt; main & gt; ': undefined method first' for "/dev/sda5":String (NoMethodError). – ᴠɪɴᴄᴇɴᴛ 2 December 2014 в 16:20
  • 5
    У меня есть файловая система ext4, и моя версия stat достаточно недавняя, чтобы узнать о времени создания, но она показывает строку Birth: - для каждого файла, который я на него набрасываю ... :( – ᴠɪɴᴄᴇɴᴛ 2 December 2014 в 16:21

Вы можете использовать сторонний инструмент для выполнения задания: я думаю о OSSEC, который способен отслеживать содержимое каталога и модификацию файла.

0
ответ дан 25 May 2018 в 16:59
  • 1
    Как это говорит вам момент времени, когда был создан уже существующий файл или каталог? – Michael Kjörling 11 November 2011 в 19:51

Метод «старой школы» для ext3 - это метод «Tripwire» (я назвал его из коварного продукта Tripwire): создайте список файлов, затем сделайте это снова, запустите diff.

Два способа создания такого списка - использование: ls или использование [F2]. Вам нужно только сохранить различия. Если вы знаете, что пользователь или конкретный родительский каталог не слишком велик, вы можете запускать его каждую секунду или чаще (так как сон занимает десятичные числа) в цикле.

0
ответ дан 25 May 2018 в 16:59

Другие вопросы по тегам:

Похожие вопросы: