Estoy tratando de localizar todos los archivos PDF en alguna carpeta y cualquier subcarpeta, solo en el terminal, en lugar de en un script. También soy bastante nuevo en Linux, así que discúlpame si me he olvidado de algo obvio, o quizás vital para diagnosticar mi problema en particular.Globing con ls para encontrar todos los archivos que coinciden con un determinado patrón
Estoy usando bash 4.1.5 (1) -release (i486-pc-linux-gnu), y he hecho algunas preguntas sobre google sobre expresiones glob y extglob, y aparece la sintaxis que debería estar usando es
$ ls **.pdf
sin embargo, esto no encuentra nada, ya que no hay archivo que coincida con el patrón *.pdf
en la carpeta actual ./
; parece querer leer **
como *
:
ls: cannot access **.pdf: No such file or directory
Hay archivos PDF en otro lugar, en subcarpetas entre 1 y 5 de profundidad (en particular en cada subcarpeta 1-profunda), algunas de las cuales se puede ver mediante la comprobación con
$ ls */*.pdf
Por lo tanto, ls
parece estar funcionando correctamente. Su manual parece no ser muy útil, ya que todo lo que pude ver que podría ser de alguna utilidad al llamar al ls
con el indicador -R
, que no resuelve el problema en ninguno de los casos anteriores.
He intentado usar patrones extglob (asegurándome de activarlos con shopt
). Puedo ver mis archivos depth-1 con ls */*?(.)pdf
, pero no puedo ver nada con ls .*(/*)pdf
o ls .*(/*).pdf
, incluso desde un subdirectorio donde hay archivos PDF.
He leído en otro lugar (en referencia al archivo .gitignore
en un repositorio de git) que el patrón **
no funciona para todos.
¿Esto podría afectarme y cómo podría remediarlo (idealmente sin privilegios de superusuario)? ¿Podría esto (o algún problema relacionado) afectar también la funcionalidad de extglob?