Mira esto:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
cd /var/www
sed -i 's/privelages/privileges/g' *
Generalmente uso este breve script, que cambiará el nombre de una cadena en todos los archivos y todos los nombres de directorios y archivos. Para usarlo, puede copiar el texto a continuación en un archivo llamado replace_string
, ejecuta sudo chmod u+x replace_string
y luego muévelo a tu sudo mv replace_string /usr/local/bin
carpeta para poder ejecutarlo en cualquier directorio.
NOTA:esto solo funciona en Linux (probado en ubuntu) y falla en MacOS. También tenga cuidado con esto porque puede estropear cosas como archivos git. Tampoco lo he probado en binarios.
#!/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 variación que tiene en cuenta los subdirectorios (no probado):
find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;
Esto será find
todos los archivos (no directorios, especificados por -type f
) bajo /var/www
y realiza un sed
comando para reemplazar "privilegios" con "privilegios" en cada archivo que encuentre.