Ein Beispiel.

Ich habe das jetzt mal in Downloads gemacht:
Show Plain Text
  1. $ pwd
  2. /Users/schnaks/Downloads
  3. $ ls -1p
  4. ...
  5. test.txt
  6. tree_top/
  7. ...


Folgende Ordner-/Dateistruktur in tree_top:
Show Plain Text
  1. $ ls tree_top/*
  2. tree_top/a:
  3. 1
  4.  
  5. tree_top/b:
  6. 2
  7.  
  8. tree_top/c:
  9. 3
  10.  
  11. tree_top/d:
  12. 4
  13.  
  14. tree_top/e:
  15. 5
  16.  
  17. tree_top/f:
  18. 6
  19.  
  20. tree_top/g:
  21. 7


a bis g sind Verzeichnisse, 1 bis 7 Dateien in diesen Verzeichnissen. Die Datei test.txt enthält die Dateienamen, welche gelöscht werden sollen (am Ende muss eine leere Zeile vorhanden sein, sonst wird der letzte Name nicht gelesen):
Show Plain Text
  1. $ cat test.txt
  2. 1
  3. 3
  4. 4


Zum Suchen und löschen dieser Dateien unterhalb von tree_top:
Show Plain Text
  1. $ while read fn; do
  2. > find tree_top -name "${fn}" -type f -delete
  3. > done < test.txt


Das führt zu:
Show Plain Text
  1. $ ls tree_top/*
  2. tree_top/a:
  3.  
  4. tree_top/b:
  5. 2
  6.  
  7. tree_top/c:
  8.  
  9. tree_top/d:
  10.  
  11. tree_top/e:
  12. 5
  13.  
  14. tree_top/f:
  15. 6
  16.  
  17. tree_top/g:
  18. 7