Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Kazekage 05 Prosince 2009, 17:08:55

Název: bash skript
Přispěvatel: Kazekage 05 Prosince 2009, 17:08:55
zdar,
takze mam zoznam fotiek oddelene su \n, samotny find s cp fungoval
INDEX si nevsimat, najprv chcem rozchodit aby to aspon skopirovalu jednu fotku


Kód: [Vybrat]
#!/bin/bash
#ZOZ je zoznam suborov s fotkami
# adresar FOTKY 2009 ma vela podadresarov

LIST=`cat /home/administrator/Desktop/ZOZ`

#index=0

while line in LIST
echo ${LIST}
do
find /home/administrator/TESTING2 -iname "${line}" -exec cp {} /home/administrator/Desktop/TEST/

done

#echo "Total fotiek skopirovanych: ${index}"


DEBUG

administrator@administrator-laptop:~/Desktop$ bash -x testing
++ cat /home/administrator/Desktop/ZOZ
+ LIST=IMG_0050.JPG
+ line in LIST

Název: Re: bash skript
Přispěvatel: Kazekage 05 Prosince 2009, 17:56:02
ok, zatial funguje tato verzia
Kód: [Vybrat]
#!/bin/bash
#ZOZ je zoznam suborov s fotkami
# adresar FOTKY 2009 ma vela podadresarov

cat /home/administrator/Desktop/ZOZNAM | while read line
do

find /media/My\ Passport/FOTKY-burn -iname IMG_${line}.JPG -exec cp {} /home/administrator/Desktop/TEST/ \;
done

PLS este by sa zislo aby ako fotka neexistuje (zoznam ma 388- skopirovalo 377) aby vypisalo ktore nenaslo. NA to si uz netrufam :D

thx
Název: Re: bash skript
Přispěvatel: arrange 05 Prosince 2009, 18:45:18
Nevím, proč to máš přes find, šlo by to třeba takto
Kód: [Vybrat]
cat /tmp/seznam | while read line
do
        cp /tmp/test/"$line" /tmp 2> /dev/null || echo "Nenašel jsem fotku $line"
done