Исключить файлы из скрытых каталогов, но не скрытые файлы (в не скрытых каталогах )из результатов поиска

Вы также должны увидеть эту информацию или аналогичную:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

Это функция безопасности, -скрывающая бесхозные процессы. Вот почему вы видите -в конце.

Попробуйте выполнить команды с помощью sudoили от имени пользователя root.

1
27.11.2019, 19:02
2 ответа

Сократите скрытые каталоги и ограничьте результаты файлами:

find. -type d -name '.?*' -prune -o -type f -print

Как предложил jthill , вы можете отфильтровать каталоги, что приведет к отображению файлов, ссылок и т. д.:

find. -type d -name '.?*' -prune -o ! -type d -print
5
27.01.2020, 23:15

Ваша команда очень близка к работе. Используйте

find. -type f ! -path '*/.*/*' -print
  • Шаблон пути, */.*/*, ищет /.(подразумевает имя сегмента, начинающееся с.)за(в конце концов)следует a /— поэтому имя сегмента, начинающееся с.не может быть последним (имя файла ); то есть это должно быть имя каталога.
  • -pathиспользует шаблоны расширения имен файлов; также известные как globs или подстановочные знаки. Поэтому вам не нужно ставить \перед..
  • Не используйте -not, если вам нужна переносимость на системы, отличные от -GNU. Использование !для обозначения «не» определяется POSIX, и работает во всех версиях find(даже BSD, Solaris и т. д. и древние системы ).
0
27.01.2020, 23:15

Теги

Похожие вопросы