-cmin
и -ls
являются предикатами , которые являются частью выражения , а не опциями.
Обратите внимание, что вы можете пометить конец опций с помощью --
, но после него по-прежнему разрешены предикаты.
С GNU find
, который позволяет пропускать пути:
find -- -L
Будет жаловаться на неизвестный -предикат L (, хотя -L
является допустимой опцией , которая на самом деле имеет -follow
эквивалентный предикат).
Поэтому пока
find "$file"
нравится
wc "$file"
работает неправильно, если $file
начинается с -
.
Выполнение wc -- "$file"
исправляет это для wc
(, за исключением особого случая file='-'
), но не для find -- "$file"
. FreeBSD find
имеет для этого find -f "$file"
.
Используя find
и dirname
, чтобы найти все файлы с именем minecraft
в текущем каталоге, (отрегулируйте место поиска в соответствии с ).
find. -type f -name minecraft | xargs -L 1 dirname
Для поиска файлов с разрешениями на выполнение вы можете использовать параметр -perm
для поиска (настроить значение в соответствии с вашими критериями поиска):
find. -type f -perm +0111 -name minecraft | xargs -L 1 dirname
Это должно напечатать путь к каталогу относительно места поиска .
Если вы хотите выполнить поиск по всей системе, просто передайте /
в качестве первого аргумента для поиска.
Если это Unix, вы можете ввести «какой Minecraft». Если это Windows, вы можете ввести «где Minecraft». Добавьте --all к команде which, чтобы вывести список всех программ, а не только первую. Обе программы ищут ПУТЬ или, в случае Windows, путь плюс определенное время выполнения места регистрации.
Чтобы найти программы вне пути, выполните описанную выше команду find, но добавьте --perm, чтобы указать исполняемый файл. Добавьте --тип f, чтобы ограничить его файлами. В древние времена существовала команда slocate, которая выполняет поиск по индексу.