а /
find .
означает «найти (начиная с текущего каталога)». Если вы хотите выполнить поиск по всей системе, используйте find /
; чтобы искать под /System/Library
, используйте find /System/Library
и т. д.
б /
Безопаснее использовать одинарные кавычки вокруг символов подстановки. Если при запуске этого файла в рабочем каталоге нет файлов с именем * .jdk, то find
получит командную строку:
find . -name *.jdk
Если, однако, у вас есть файлы junk.jdk
и foo.jdk
в текущем каталоге при запуске, find
будет вместо этого начинаться с:
find . -name junk.jdk foo.jdk
… что (так как их два) запутает и приведет к ошибке. Если вы затем удалите foo.jdk
и сделаете то же самое снова, у вас будет
find . -name junk.jdk
… который никогда не найдет файл с именем (например) 1.6.0.jdk
.
Что вы, вероятно, хотите в этом контексте, это
find /System -name '*.jdk'
… или вы можете «убежать» от *
как:
find /System -name \*.jdk