Sto cercando di individuare tutti i file PDF in alcune cartelle e sottocartelle, solo nel terminale, anziché in uno script. Sono anche abbastanza nuovo per Linux, quindi scusati se ho perso qualcosa di ovvio, o forse vitale per diagnosticare il mio particolare problema.Globbing con ls per trovare tutti i file che corrispondono a un determinato pattern
Sto usando bash 4.1.5 (1) -release (i486-pc-linux-gnu), e ho fatto qualche ricerca su google riguardo le espressioni glob ed extglob, e appare la sintassi che dovrei usare è
$ ls **.pdf
Questo però non trova niente, poiché non v'è alcun file corrisponde al modello *.pdf
nella cartella corrente ./
; sembra voler leggere **
come *
:
ls: cannot access **.pdf: No such file or directory
Non ci sono file PDF altrove, in sottocartelle tra 1 e 5 in profondità (in particolare nel ogni sottocartella 1-profondità), alcuni dei quali posso vedere controllando con
$ ls */*.pdf
Quindi, ls
sembra funzionare correttamente. Il suo manuale sembra non essere molto utile, dal momento che tutto ciò che ho potuto vedere potrebbe essere utile per noi chiamando lo ls
con il flag -R
, che non risolve il problema in nessuno dei casi sopra descritti.
Ho provato a utilizzare i pattern extglob (assicurandomi di accenderli con shopt
). Posso vedere i miei file depth-1 con ls */*?(.)pdf
, ma non riesco a vedere nulla con ls .*(/*)pdf
o ls .*(/*).pdf
, anche all'interno di una sottodirectory in cui sono presenti PDF.
Ho letto altrove (in riferimento al file .gitignore
in un repository git) che lo schema **
non funziona per tutti.
Ciò potrebbe influire su di me e come potrei risolverlo (idealmente senza privilegi di superutente)? Potrebbe anche questo (o qualche problema correlato) influenzare la funzionalità di extglob?