Respuestas:
¿Por qué no puedo usar un comando como este para encontrar todos los archivos pdf en un directorio y subdirectorios?
El comodín *.pdf
en su comando se expande bash
a todos los archivos coincidentes en el directorio actual, antes de ejecutarse ls
.
¿Cómo lo hago? (Estoy usando bash en ubuntu)
encontrar es tu respuesta.
find . -name \*.pdf
es una lista recursiva de archivos pdf. -iname
es una coincidencia entre mayúsculas y minúsculas, así que
find . -iname \*.pdf
enumera todos los archivos .pdf, incluidos, por ejemplo, foo.PDF
Además, puede usar ls para un número limitado de subcarpetas, por ejemplo
ls *.pdf */*.pdf
para encontrar todos los archivos pdf en subcarpetas (coincide con bar / foo.pdf, no con bar / foo / asdf.pdf y no con foo.PDF).
Si desea eliminar los archivos encontrados con find, puede usar
find . -iname \*.pdf -delete
Como otros han dicho, encontrar es la respuesta.
Ahora para responder a la otra parte.
¿Cómo haría para eliminar todos estos archivos?
encontrar . -iname * .pdf -exec rm {} \;
Deberías hacerlo.
ls -l
comando, que muestre el tamaño del archivo, la propiedad, la fecha, etc., puede usarfind
con la-ls
opción, por ejemplofind . -name \*.pdf -ls