Подтвердить что ты не робот

Команда Linux для проверки новых файлов в файловой системе

У нас есть Linux-машина, мы хотели бы проверить, какие новые файлы были добавлены между определенным диапазоном дат.

У меня есть только SSH-доступ к этому ящику, а openSUSE 11.1

Есть ли какая-то команда, которая может дать мне список файлов, которые были добавлены в файловую систему между say 04/05/2011 и 05/05/2011

Спасибо

Отношения Габриэль

4b9b3361

Ответ 1

Есть несколько способов сделать это.

Первый:

start_date=201105040000

end_date=201105042359

touch -t ${start_date} start

touch -t ${end_date} end

find /you/path -type f -name '*you*pattern*' -newer start ! -newer end -exec ls -s {} \;

Второй: найти файлы, измененные между 20 и 21 день назад:

find -ctime +20 -ctime -21

находит файлы, измененные между 2500 и 2800 минутами назад:

find -cmin +2500 -cmin -2800

И прочитайте этот раздел.

Ответ 2

Я неправильно понял ваш вопрос. В зависимости от того, какую файловую систему вы используете, она может хранить или не хранить время создания.

Я понимаю, что ext2/3/4 не сохраняет время создания, но изменено, изменено (состояние, которое немного отличается) и время доступа.

Fat32, с другой стороны, содержит временные метки создания IIRC.

Если вы используете файловую систему ext, у вас есть два варианта:

1. Выберите для поиска все файлы, которые были изменены между двумя датами (которые будут включать созданные файлы, а также файлы, которые были только что отредактированы). Вы можете сделать это, используя find.

2.Создайте script/cronjob, который будет документировать содержимое вашей файловой системы через некоторый интервал, например.

find / > filesystem.$(date +%s).log

а затем запустите diff, чтобы увидеть, что было добавлено. Это, конечно же, помешало бы вам смотреть назад вовремя, прежде чем вы начнете делать эти журналы.

Ответ 3

Ну, вы можете использовать find, чтобы получить список всех файлов, которые были в последний раз модифицированы в определенное временное окно, но это не совсем то, что вы хотите. Я не думаю, что вы можете сказать только из метаданных файла, когда он появился.

Изменить: чтобы просмотреть файлы вместе с датами их модификации, вы можете вывести вывод find через xargs для запуска ls -l для всех файлов, в котором будет отображаться время модификации.

find /somepath -type f ... -print0 | xargs -0 -- ls -l

Ответ 4

Вы можете попробовать один из них:

find -newerct "1 Aug 2013" ! -newerct "1 Sep 2013" -ls

find . -mtime $(date +%s -d"Jan 1, 2013 23:59:59") -mtime $(date +%s -d"Jan 2, 2016 23:59:59")

find /media/WD/backup/osool/olddata/ -newermt 20120101T1200 -not -newermt 20130101T1400

find . -mtime +1 -mtime -3
find . -mtime +1 -mtime -3 > files_from_yesterday.txt 2>&1
find . -mtime +1 -mtime -3 -ls > files_from_yesterday.txt 2>&1

touch -t 200506011200 first
touch -t 200507121200 last
find / -newer first ! -newer last

#!/bin/bash
for i in `find Your_Mail_Dir/ -newermt "2011-01-01" ! -newermt "2011-12-31"`; do
    mv $i /moved_emails_dir/

Надеюсь, что это поможет.