Il 26/09/2016 04:12, Teodoro Santoni ha scritto:
Ciao,
Il 25/09/16, beppe<git...@tin.it> ha scritto:
Lo script funziona bene finche' non incontra una directory con spazi:
$ cat tar_backup.sh
#!/bin/bash
data=$data$(date | cut -d ' ' -f6 | cut -c 1-4)
data=$data$(date | cut -d ' ' -f2)
data=$data$(date | cut -d ' ' -f3)
echo $data
#IFS_OLD=$IFS
#IFS=$'\n'
# per controllare la data
sleep 2
for i in $(ls -d /home/prove/*/ | cut -f4 -d'/' | sed 's/\ /\\ /g'); do
tar -cvzf $data'_'${i%%/} '/home/prove/'${i%%/}; done
#IFS=$IFS_OLD
avevo provato a ridefinire IFS, ma quando tar riceve i parametri non li
legge correttamente.
(al momento ho risolto rinominando le directory sostituendo gli spazi
con '_'
ma non e' una buona idea per i files che hanno link ad altri files)
Come argomento a sed potresti provare con 's/ /\\ /g'.
Io rifarei tutto il ciclo del coso in tar da capo a dir il vero, ad esempio con:
printf "%s\n" /home/prove/*/ | while read ; do bn=$(basename $REPLY) ;
tar -cvzf $data"_$bn" "$REPLY" ; done
Perfetto!
Non avevo pensato a basename...
Grazie 1000!!!
ciao
Beppe
--
le nuvole non hanno regole,
perchè non hanno mai rinunciato
alla libertà di sognare.