Dai un'occhiata a questo:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
cd /var/www
sed -i 's/privelages/privileges/g' *
Generalmente uso questo breve script, che rinominerà una stringa in tutti i file e tutti i nomi di directory e file. Per usarlo, puoi copiare il testo qui sotto in un file chiamato replace_string
, esegui sudo chmod u+x replace_string
e poi spostalo nel tuo sudo mv replace_string /usr/local/bin
folder per poterlo eseguire in qualsiasi directory.
NOTA:funziona solo su Linux (testato su Ubuntu) e fallisce su MacOS. Fai attenzione anche a questo perché può rovinare cose come i file git. Non l'ho nemmeno testato sui binari.
#!/usr/bin/env bash
# This will replace all instances of a string in folder names, filenames,
# and within files. Sometimes you have to run it twice, if directory names change.
# Example usage:
# replace_string apple banana
echo $1
echo $2
find ./ -type f -exec sed -i -e "s/$1/$2/g" {} \; # rename within files
find ./ -type d -exec rename "s/$1/$2/g" {} \; # rename directories
find ./ -type f -exec rename "s/$1/$2/g" {} \; # rename files
Una variazione che tiene conto delle sottodirectory (non testate):
find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;
Questo sarà find
tutti i file (non le directory, specificate da -type f
) sotto /var/www
ed esegui un sed
comando per sostituire "privelages" con "privileges" su ogni file che trova.