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

Re: script tar con nomi directory contenenti spazi



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


Reply to: