GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie listet man bestimmte Dateitypen in rekursiven Verzeichnissen in der Shell auf?

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.


Linux
  1. Wie suche ich in bestimmten Dateien, die einem Muster entsprechen?

  2. Wie finde ich mehrere Zeichenfolgen in Dateien?

  3. Wie listet man rekursive Dateigrößen von Dateien und Verzeichnissen in einem Verzeichnis auf?

  4. Wie man Verzeichnisse rekursiv mit rsync kopiert und dabei bestimmte Dateien ausschließt

  5. Wie finde ich unter Linux alle Dateien, die bestimmten Text enthalten?

So finden Sie eine bestimmte Zeichenfolge oder ein bestimmtes Wort in Dateien und Verzeichnissen

So benennen Sie Dateien und Verzeichnisse in Linux um

So komprimieren Sie Dateien und Verzeichnisse unter Linux

So organisieren Sie automatisch ähnliche Dateitypen in bestimmten Ordnern

So listen Sie nur Verzeichnisse in Linux auf

So führen Sie eine Grep-Suche für alle Dateien und in allen Verzeichnissen durch