LinuxForum.Fans
Тема

shell: find -newerct - непонятный результат

Автор: crang 6 сообщений 2742 просмотров
#6133

Доброго времени суток.
Есть команда find ./ -newerct '1 day ago', по задумке должна выводить файлы не старше 1 дня, но выводит даже за прошлый год, хотя и не все подряд - по какому-то критерию все-таки отбирает, может кто подскажет - по какому?

#6167

По сути должно работать.
Приведите кусочек "неожиданного" вывода с доказательством его неожиданности в виде ls -l для файлов из приведенного куска.
Еще попробуйте:

text
find ./ -mtime -1
#6176

Ну может по задумке и так, у меня она вообще не работает, пишет "не могу понять 1 day ago это дата или время" ))) используйте find ./ -mtime -1

#6236
MageWarrior написал:
По сути должно работать.
Приведите кусочек "неожиданного" вывода с доказательством его неожиданности в виде ls -l для файлов из приведенного куска.
Еще попробуйте:
text
find ./ -mtime -1

сразу текущую дату напишу:

date
Вто Мар 2 11:07:57 EET 2010

find "/ftp_root/pub/cinema/Последний бой майора Пугачева" -newerct '1 day ago'
/ftp_root/pub/cinema/Последний бой майора Пугачева
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_1.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_02_0.IFO
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VIDEO_TS.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_0.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_02_1.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VIDEO_TS.BUP
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_03_0.BUP
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_2.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_3.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_0.BUP
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_4.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_01_0.IFO
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VIDEO_TS.IFO
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_02_0.BUP
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_03_0.IFO
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_02_0.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/VIDEO_TS/VTS_03_1.VOB
/ftp_root/pub/cinema/Последний бой майора Пугачева/AUDIO_TS

ls -l
итого 4490764
-rw-r--r-- 1 crang crang 14336 2008-01-22 01:22 VIDEO_TS.BUP
-rw-r--r-- 1 crang crang 14336 2008-01-22 01:22 VIDEO_TS.IFO
-rw-r--r-- 1 crang crang 7448576 2008-01-22 01:22 VIDEO_TS.VOB
-rw-r--r-- 1 crang crang 124928 2008-01-22 01:22 VTS_01_0.BUP
-rw-r--r-- 1 crang crang 124928 2008-01-22 01:22 VTS_01_0.IFO
-rw-r--r-- 1 crang crang 385632256 2008-01-22 01:22 VTS_01_0.VOB
-rw-r--r-- 1 crang crang 1073739776 2008-01-22 01:23 VTS_01_1.VOB
-rw-r--r-- 1 crang crang 1073739776 2008-01-22 01:24 VTS_01_2.VOB
-rw-r--r-- 1 crang crang 1073739776 2008-01-22 01:25 VTS_01_3.VOB
-rw-r--r-- 1 crang crang 739397632 2008-01-22 01:26 VTS_01_4.VOB
-rw-r--r-- 1 crang crang 18432 2008-01-22 01:26 VTS_02_0.BUP
-rw-r--r-- 1 crang crang 18432 2008-01-22 01:26 VTS_02_0.IFO
-rw-r--r-- 1 crang crang 12288 2008-01-22 01:26 VTS_02_0.VOB
-rw-r--r-- 1 crang crang 162076672 2008-01-22 01:26 VTS_02_1.VOB
-rw-r--r-- 1 crang crang 12288 2008-01-22 01:26 VTS_03_0.BUP
-rw-r--r-- 1 crang crang 12288 2008-01-22 01:26 VTS_03_0.IFO
-rw-r--r-- 1 crang crang 82360320 2008-01-22 01:26 VTS_03_1.VOB

притом пару дней назад команда отрабатывала правильно, за -mtime -1 - спасибо - работает как надо

#6327

А интересно, find ./ -newermt '1 day ago' сработает так же как и find ./ -mtime -1 ?
Думаю, что именно так. Дабы -newetct производит сравнение по времени изменения статуса inode, а -mtime по времени модификации данных. Вещи разные. Переименуйте какой-либо файл и обратите внимание, что время модификации статуса inode сменилось, а время модификации файла (доступно по ls -l ) осталось неизменным. То есть в вывод find ./ -newermt '1 day ago' файл может не попасть (если его давно не модифицировали), а в вывод find ./ -newerct '1 day ago' обязательно попадет.

#6407

MageWarrior исчерпывающий ответ, спасибо, вопрос решен.

Войдите или зарегистрируйтесь, чтобы ответить.