Команда Linux для проверки новых файлов в файловой системе - PullRequest
23 голосов
/ 05 мая 2011

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

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

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

Спасибо

С уважением, Габриэль

Ответы [ 4 ]

36 голосов
/ 05 мая 2011

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

Первый:

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 голосов
/ 05 мая 2011

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

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

find /somepath -type f ... -print0 | xargs -0 -- ls -l
1 голос
/ 21 апреля 2016

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

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/

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

1 голос
/ 05 мая 2011

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...