Я хочу написать функцию, которая найдет файлы в текущем каталоге, в котором я сейчас. Дело в том, что если я в /home
, я хочу найти файлы в sys
, dev
и var
(что находится в моей домашней папке). Но если я в корневой папке, я хочу, чтобы их раздели. Я пробовал:Как игнорировать каталог в поиске по полному пути
find -L . \(-path '/dev' -o -path '/var' -o -path '/sys' \) -prune \
-o -type f -print \
-o -type d -print \
-o -type l -print
Но его не работает. Если я устанавливаю точку (.) В начале каждого пути, который я хочу исключить, он работает для корневой папки, но также исключает такие директории в других каталогах, чего я не хочу.
Есть ли способ обрезать полный (глобальный) путь к файлу? Я попробовал вариант -wholename
, но, похоже, для меня это не работает.
Пропущено ли пробелы между '' sys'' и закрывающим парелем или артефактом вашего сообщения? –
Кроме того, «путь» полностью не связан с путями файловой системы; это относится к алгоритмам искусственного интеллекта. В то время как тег «find» перегружен, он действительно лучше, чем «поиск пути» для этого запроса. –
Кстати, поскольку вы пишете функцию, почему бы не поставить условную логику в самой функции? –