Я пытаюсь найти все файлы PDF в какой-либо папке и любой подпапке, только в терминале, а не в в сценарии. Я также новичок в 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?