Я пытаюсь найти все файлы PDF в некоторой папке и любой вложенной папке только в терминале, а не в script. Я также совершенно новичок в Linux, поэтому извиняюсь, если я пропустил что-то очевидное или, возможно, жизненно важно для диагностики моей конкретной проблемы.
Я использую bash 4.1.5 (1) -release (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?