find . | grep "\.doc$"
Cela montrera également le chemin.
ls
la sortie de la commande est principalement destinée à être lue par des humains. Pour les requêtes avancées pour le traitement automatisé, vous devez utiliser find
plus puissant commande :
find /path -type f \( -iname "*.doc" -o -iname "*.pdf" \)
Comme si vous aviez bash 4.0++
#!/bin/bash
shopt -s globstar
shopt -s nullglob
for file in **/*.{pdf,doc}
do
echo "$file"
done
Si vous êtes plus à l'aise avec "ls" et "grep", vous pouvez faire ce que vous voulez en utilisant une expression régulière dans la commande grep (le caractère '$' de fin indique que .doc doit être à la fin de la ligne. exclure "fichier.doc.txt") :
ls -R |grep "\.doc$"
Plus d'informations sur l'utilisation de grep avec des expressions régulières dans le man.