Команда Linux для проверки новых файлов в файловой системе
У нас есть Linux-машина, мы хотели бы проверить, какие новые файлы были добавлены между определенным диапазоном дат.
У меня есть только SSH-доступ к этому ящику, а openSUSE 11.1
Есть ли какая-то команда, которая может дать мне список файлов, которые были добавлены в файловую систему между say 04/05/2011 и 05/05/2011
Спасибо
Отношения
Габриэль
Ответы
Ответ 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/
Надеюсь, что это поможет.