Следующая команда поиска фильтрует файлы и каталоги, начиная с символа точки.найти команду обрезать только файлы, начинающиеся с точки (файлы фильтра, начинающиеся с точки)
find $PWD \(-name '.*' -prune \) -o -print
Где в качестве добавления условие «-type f» не фильтрует файлы, начинающиеся с точки.
find $PWD \(-name '.*' -type f -prune \) -o -print # this does not work
Как подрезать только файлы, начинающиеся с точки
EDIT 1: Разъяснение на «Не работает»
Списки команд файл, начиная с оператора точки. Позже выяснилось, что это была символическая ссылка на другой файл (который не начинается с точки). Пробовал использовать -L (следовать символическим ссылкам), как показано ниже, который по-прежнему перечисляет символический файл ссылки, начиная с точки.
find -L $PWD \(-name '.*' -type f -prune \) -o -print
Объяснение 'не работает'? Нет особых причин для '-prune', а не просто' -not name '. *' 'Если вы хотите только обрезать файлы точек, но ваша логика должна все же опускать точечные файлы (а не скрытые каталоги). – BroSlow
Основываясь на этом редактировании, похоже на проблему XY. Возможно, стоит удалить этот вопрос и опубликовать новый (вероятно, лучше разместить на [unix stackexchange] (http://unix.stackexchange.com/)) о том, почему параметры поиска по-прежнему используются для символических имен с помощью '-L' on , Что-то вроде 'find '$ PWD"! \ (-type l -lname '. *' -o -type f -name '. *' \) ', вероятно, будет близок к работе, но он будет опускать символические ссылки, указывающие на файлы и каталоги, начиная с точки, поэтому, вероятно, не совсем то, что здесь нужно. – BroSlow