Réponses:
Pourquoi ne puis-je pas utiliser une commande comme celle-ci pour trouver tous les fichiers PDF dans un répertoire et des sous-répertoires?
Le caractère générique *.pdf
de votre commande est étendu par bash
tous les fichiers correspondants dans le répertoire actuel, avant de s'exécuter ls
.
Comment fait-on ça? (J'utilise bash dans ubuntu)
trouver est votre réponse.
find . -name \*.pdf
est une liste récursive des fichiers pdf. -iname
est une correspondance insensible à la casse, donc
find . -iname \*.pdf
liste tous les fichiers .pdf, y compris par exemple foo.PDF
Vous pouvez également utiliser ls pour un nombre limité de sous-dossiers, par exemple
ls *.pdf */*.pdf
pour trouver tous les fichiers pdf dans les sous-dossiers (correspond à bar / foo.pdf, pas à bar / foo / asdf.pdf et pas à foo.PDF).
Si vous souhaitez supprimer les fichiers trouvés avec find, vous pouvez utiliser
find . -iname \*.pdf -delete
Comme d'autres l'ont dit, trouver est la réponse.
Maintenant, pour répondre à l'autre partie.
Comment pourrais-je alors supprimer tous ces fichiers?
trouver . -iname * .pdf -exec rm {} \;
Devrait le faire.
ls -l
commande, montrant la taille du fichier, la propriété, la date, etc., vous pouvez l'utiliserfind
avec l'-ls
option, par exemplefind . -name \*.pdf -ls