Ik ben een bash script (draaiend onder FreeBSD) in elkaar aan het zetten om m'n clients te backuppen. Hiervoor wordt deze for-loop gebruikt:
korte uitleg:
De Dschijf van de client is gemount naar $tempdir. Hier worden alle .dat bestanden kleiner dan 10MB, en alle overige bestanden kleiner dan 100MB gekopieerd naar de backup-dir op de server. Er is alleen 1 situatie waarin dit misloopt, en ik heb geen idee hoe ik dat moet oplossen.
probleem:
stel dat "d:/documents/bastandsnaam met spatie.doc" gevonden wordt door de find, dan ziet de for-loop dit als drie losse bestanden.
Er zal dus geprobeerd worden om
* d:/documents/bastandsnaam
* met
* spaties.doc
te kopieren. Alle drie bestaan uiteraard niet, en het originele bestand wordt niet gekopieerd.
Nu is alleen nog de vraag hoe ik dit kan voorkomen. Zo dacht ik bijvoorbeeld aan een manier om de spaties tijdelijk door _ te vervangen oid, maar dan zou ik wederom een for-loop nodig hebben, en daar gaat het nou net mis. Ik zit dus een beetje in een cirkel-redenering waar ik niet meer uitkom
code:
1
2
3
4
| for j in `find $tempdir/ \! \( -name "*.dat" -size +10000000c \) -size -100000000c`
do
cp -Rpv $j $backupdir/$i
done |
korte uitleg:
De Dschijf van de client is gemount naar $tempdir. Hier worden alle .dat bestanden kleiner dan 10MB, en alle overige bestanden kleiner dan 100MB gekopieerd naar de backup-dir op de server. Er is alleen 1 situatie waarin dit misloopt, en ik heb geen idee hoe ik dat moet oplossen.
probleem:
stel dat "d:/documents/bastandsnaam met spatie.doc" gevonden wordt door de find, dan ziet de for-loop dit als drie losse bestanden.
Er zal dus geprobeerd worden om
* d:/documents/bastandsnaam
* met
* spaties.doc
te kopieren. Alle drie bestaan uiteraard niet, en het originele bestand wordt niet gekopieerd.
Nu is alleen nog de vraag hoe ik dit kan voorkomen. Zo dacht ik bijvoorbeeld aan een manier om de spaties tijdelijk door _ te vervangen oid, maar dan zou ik wederom een for-loop nodig hebben, en daar gaat het nou net mis. Ik zit dus een beetje in een cirkel-redenering waar ik niet meer uitkom