find . | grep "\.doc$"
Dadurch wird auch der Pfad angezeigt.
ls
Die Befehlsausgabe ist hauptsächlich zum Lesen durch Menschen gedacht. Für erweiterte Abfragen zur automatisierten Verarbeitung sollten Sie den leistungsfähigeren find
verwenden Befehl:
find /path -type f \( -iname "*.doc" -o -iname "*.pdf" \)
Als ob Sie Bash 4.0++ hätten
#!/bin/bash
shopt -s globstar
shopt -s nullglob
for file in **/*.{pdf,doc}
do
echo "$file"
done
Wenn Sie mit "ls" und "grep" vertrauter sind, können Sie mit einem regulären Ausdruck im grep-Befehl tun, was Sie wollen (das abschließende '$'-Zeichen zeigt an, dass .doc am Ende der Zeile stehen muss. Das wird "file.doc.txt" ausschließen):
ls -R |grep "\.doc$"
Weitere Informationen zur Verwendung von grep mit regulären Ausdrücken im man.