LINUX.ORG.RU

find -o и -mmin

 


0

2

Доброго времени суток. Подскажите пожалуйста новичку по команде find. Цель: Найти файлы который изменялись за последние 3 часа, по маске из нескольких имен.
Операционная система AIX 7.
Вот так все работает: find ./ -name "*.txt" -mmin -180
А вот так уже нет: find ./ -name "*.txt" -o -name "*.dat" -mmin 180 - команда уже выведет все файлы *.txt. Пробовал вот так - find ./ -name "*.txt" -mmin -180 -o -name "*.dat" mmin -180 не работает выдает ошибку. Пробовал в скобки выражение добавлять - выдает ошибку. Помогите пожалуйста с командой или покажите направление куда копать.

Подскажите пожалуйста новичку

Операционная система AIX 7

Я - президент коммунитической партии галактической империи на космолете «навуходаносор»

find -o

В любой непонятной ситуации с инфиксными операторами используй скобки.

anonymous ()

Пробовал в скобки выражение добавлять - выдает ошибку.

Показывай конструкцию, на которую ругается и саму ошибку было бы тоже неплохо привести.

AIX 7

:3

mord0d ★★★ ()
Ответ на: комментарий от anonymous

Автор написал что скобки не помогают.

Автор не показал, как он использует скобки. Неэкранированные скобки будут интерпретироваться shell’ом, что скорее всего приведет к ошибкам интерпретации shell-команды.

Если он «новичок в aix», то ему лучше не стоит помогать, как обезьяне с гранатой - больше веротяность, что никто не пострадает, включая саму обезьяну.

anonymous ()

find ./ -name "*.txt" -o -name "*.dat" -mmin 180

Пробовал в скобки выражение добавлять - выдает ошибку.

Скобки экранировал?

find ./  \( -name "*.txt" -o -name "*.dat" \) -mmin -180

Если скобки не экранировать, шелл их попытается сожрать (и подавится) раньше, чем они попадут в find.

Это даже специально отмечено в man find (который ты, я очень надеюсь, читал):

CAVEATS

The special characters used by find are also special characters to many shell programs. In particular, the characters ‘*’, ‘[’, ‘]’, ‘?’, ‘(’, ‘)’, ‘!’, ‘\’, and ‘;’ may have to be escaped from the shell.

aeralahthu ()
Последнее исправление: aeralahthu (всего исправлений: 1)