Ubuntu находит файлы и каталоги, соответствующие имени в одной строке

Ubuntu находит файлы и каталоги, соответствующие имени в одной строке

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

Я хочу найти файл или каталог (в зависимости от того, что найдено условно) в одной команде, можно ли объединить -dи -fс помощью операции ИЛИ?

решение1

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

ИзнаходитьСтраница руководства (под заголовком ОПЕРАТОРЫ):

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

решение2

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

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

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

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

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

Связанный контент