[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: script tar con nomi directory contenenti spazi



Il 26/09/2016 04:12, Teodoro Santoni ha scritto:
Ciao,

Il 25/09/16, beppe<gitrec@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.


Reply to: