Veröffentlicht 29. November 200717 j Hallo und einen schönen Gruß and die Shell - Profis hier im forum. Ich moechte eigentlich nur zeilenweise dateinamen aus einer Textdatei auslesen. Für jede Zeile die ich gelesen habe, verwende ich find um in einem bestimmten Ordner (hier /media/bla/blabla) nachzusehen ob es diese Files gibt. Wenn ja dann kopiere diese in ein anderes Verzeichnis (hier /root/destination) also aufrufen tue ich das ganze so: ./searchCopy dataFile und so sieht das searchCopy script aus: #!/bin/bash cat $1 | while read a; do echo $a files="$(find /media/bla/blabla -name $a)" echo $files for X in $files do echo $X cp $X /root/destination done done Die ausgabe von $a klappt noch, aber in $X steht anscheinend nur ein Zeilenumbruch drinnen, daher wird auch nichts kopiert. Was passt da nicht? Würde mich über Tipps jeder Art freuen... mfg
29. November 200717 j Warum nicht: find /media/bla/blabla -name $a -print -exec cp \{\} /root/destination \; Bitte noch mal den exakten Syntax in den Mans nachschauen Phil
29. November 200717 j danke sehr! problem gelöst! Hier für alle dies interessiert: #!/bin/bash cat $1 | while read a; do echo $a files="$(find /media/blabla -iname "*${a}*")" echo $files for X in $files do echo $X cp $X /root/destination done done
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.