Я пытаюсь найти все файлы PDF в некоторой папке и любой подпапке, только в терминале, в отличие от сценария. Я также новичок в Linux, поэтому прошу прощения, если я пропустил что-то очевидное, или, возможно, жизненно важно для диагностики моей конкретной проблемы.
Я использую bash 4.1.5 (1) -релиз (i486-pc-linux-gnu) и покопался в google по поводу выражений glob и extglob, и похоже, что синтаксис, который я должен использовать,
$ ls **.pdf
Однако это ничего не находит, поскольку в текущей папке ./
нет файла, соответствующего шаблону *.pdf
; кажется, что он хочет прочитать **
как *
:
ls: cannot access **.pdf: No such file or directory
В других местах есть PDF-файлы, в подпапках от 1 до 5 (в частности, в каждая подпапка 1-в глубину), некоторые из которых я могу увидеть, проверив с помощью
$ ls */*.pdf
Следовательно, ls
, похоже, работает правильно. Его руководство, кажется, не очень полезно, так как все, что я мог видеть, было бы полезно, если бы мы вызывали ls
с флагом -R
, что не решает проблему ни в одном из вышеуказанных случаев.
Я попытался использовать шаблоны extglob (обязательно включив их с помощью shopt
). Я вижу мои файлы глубины 1 с помощью ls */*?(.)pdf
, но я ничего не вижу с ls .*(/*)pdf
или ls .*(/*).pdf
, даже в подкаталоге, где есть PDF-файлы.
В другом месте (со ссылкой на файл .gitignore
в репозитории git) я читал, что шаблон **
работает не для всех.
Может ли это повлиять на меня и как я могу это исправить (в идеале без привилегий суперпользователя)? Может ли это (или связанная с этим проблема) также повлиять на функциональность extglob?