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

Re: Modificare in massa i permessi : problema con file e dir con spazi e underscore




----- Messaggio originale -----

> Da: pac <pacmoit@gmail.com>
> A: debian <debian-italian@lists.debian.org>
> Cc: 
> Inviato: Lunedì 24 Novembre 2014 12:09
> Oggetto: Modificare in massa i permessi : problema con file e dir con spazi e underscore
> 
> Vorrei modificare i permessi nella mia directory Documenti come segue
> Tutte le dir 775
> Tutti i file 664
> Per far questo ho tentato di utilizzare i seguenti comandi :
> find percorsoincuicambiareipermessi -type f | xargs chmod 664 per
> modificare solo i file
> find percorsoincuicambiareipermessi -type d | xargs chmod 775 per
> modificare solo le directory
> Solo che in questo modo mi salta directory e file in cui ci sono degli
> spazi o underscore perchè legge solo il primo vocabolo e non a seguire
> dopo lo spazio
> Come posso modificare questo script in modo tale che comprenda anche
> file e dir con spazi e underscore ?
> 

> 


Ciao,
Tempo fa avevo trovato in rete lo script qui sotto, che rinomina file ricorsivamente, inserendo underscore al posto dello spazio e mettendo tutte le lettere in minuscolo; magari ti torna utile.
Ovviamente puoi togliere la parte delle lettere; fai comunque delle prove prima, per vedere se fa al caso tuo.

Ciaociao :)


 - - -


#!/bin/bash
# Convert filenames to lowercase
# and replace characters recursively
#####################################

if [ -z $1 ];then echo Give target directory; exit 0;fi

find "$1" -depth -name '*' | while read file ; do
directory=$(dirname "$file")
oldfilename=$(basename "$file")
#       newfilename=$(echo "$oldfilename" | tr 'A-Z' 'a-z' | tr ' ' '_' | sed 's/_-_/-/g')
newfilename=$(echo "$oldfilename" | tr 'A-Z' 'a-z' | tr ' ' '_')
if [ "$oldfilename" != "$newfilename" ]; then
mv "$directory/$oldfilename" "$directory/$newfilename"
echo ""$directory/$oldfilename" ---> "$directory/$newfilename""
#echo "$directory"
#echo "$oldfilename"
#echo "$newfilename"
#echo
fi
done
exit 0


 - - -


Reply to: