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
lordy Geschrieben 29. November 2007 Geschrieben 29. November 2007 Probier mal files=`find /media/bla/blabla -name ${a}`
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden