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
()

перед вторым mmin минуса не хватает

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

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

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

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)

Чего голову ломать?
Кейс открой в IBM и все.

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

Вопрос решен. Спасибо большое за ответы. Я ошибся при экранировании, между последней кавычкой и \ не поставил пробел.

raptor855
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.