2

Есть параметры команды find для поиска файлов и каталогов соответственно -f и -d , но я хочу избежать написания двух команд find и && или || между ними.

Я хочу найти файл или каталог (в зависимости от того, что найдено условно) в одной команде, могут ли -d и -f быть ORed?

2 ответа2

2

Если вы не указали ни -f ни -d , find с помощью show все типы inode (файлы, каталоги, устройства, ссылки и т.д.). Если вам нужны только файлы и каталоги, то используйте -o и, возможно, используйте экранированные скобки, если вы собираетесь использовать другие типы условий.

Например, все файлы, каталоги, ссылки и т.д ...., которые были изменены / созданы за последние 2 дня:

find . -iname '*blah*' -mtime -2

То же, что и выше, но только файлы и каталоги (без ссылок, устройств ...)

find . -iname '*blah*' \( -type d -o -type f \) -mtime -2

2

Используйте опцию -o .

С находкой человеком страницы (под заголовком ОПЕРАТОРОВ):

   expr1 -o expr2
          Or; expr2 is not evaluated if expr1 is true.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .