Rain Geschrieben 29. November 2007 Geschrieben 29. November 2007 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 Zitieren
lordy Geschrieben 29. November 2007 Geschrieben 29. November 2007 Probier mal files=`find /media/bla/blabla -name ${a}` Zitieren
flashpixx Geschrieben 29. November 2007 Geschrieben 29. November 2007 Warum nicht: find /media/bla/blabla -name $a -print -exec cp \{\} /root/destination \; Bitte noch mal den exakten Syntax in den Mans nachschauen Phil Zitieren
Rain Geschrieben 29. November 2007 Autor Geschrieben 29. November 2007 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.