проблема состоит в том, что находят
, нашел каталог, он соответствует вашему выбору, и затем команда выполняется. Однако находят
, хочет сделать то, что прибывает естественно, и это рекурсивно вызывает через дерево каталогов, но каталог, которым это просто найдено, исчез! Следовательно сообщение об ошибке.
можно работать вокруг этого путем предоставления - глубина
опция, что означает процесс содержание каждого каталога перед самим каталогом . Страница справочника также упоминает, что - удаляют
, опция также подразумевает эту опцию, которая является по вышеупомянутой причине.
specify -not -type d
, чтобы исключить каталоги из результата поиска
find -not -type d | xargs less
или лучше:
find -not -type d -print0 | xargs -0 less
, которая лучше обрабатывает имена файлов с пробелами в них.
с Bash
, , Globstar Опция Включить, вы можете:
shopt -s globstar
less brscan/**/*
Но он также включает в себя каталоги. С ZSH
, вы можете фильтровать расширение только к регулярным файлам:
less brscan/**/*(.)
Все вышеперечисленное не удалось, если слишком много файлов возвращается. Безопасный способ использует Найти
:
:
find brscan -type f -exec less {} +