2010-12-23 17 views

Antwort

7

Dies wird ein Unterverzeichnis tief gehen. Die innere for-Schleife wird über eingeschlossene Dateien und Verzeichnisse iterieren. Die if-Anweisung schließt Verzeichnisse aus. Sie können Optionen zum Einschließen von versteckten Dateien und Verzeichnissen festlegen (shopt -s dotglob).

shopt -s nullglob 
for dir in /some/dir/*/ 
do 
    for file in "$dir"/* 
    do 
     if [[ -f $file ]] 
     then 
      do_something_with "$file" 
     fi 
    done 
done 

Dies wird rekursiv sein. Sie können die Tiefe mit der Option -maxdepth begrenzen.

find /some/dir -mindepth 2 -type f -exec do_something {} \; 

Mit -mindepth Dateien im aktuellen Verzeichnis ausschließt, aber es enthält Dateien in der nächsten Stufe nach unten (und unten je nach -maxdepth).

2

Nun, man kann tun, dass mit grep:

grep -rl^/path/to/dir 

Aber warum? find ist besser.

+0

ein Wort: Hausaufgaben –