Vérifiez ceci :http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
cd /var/www
sed -i 's/privelages/privileges/g' *
J'utilise généralement ce court script, qui renommera une chaîne dans tous les fichiers et tous les noms de répertoires et noms de fichiers. Pour l'utiliser, vous pouvez copier le texte ci-dessous dans un fichier appelé replace_string
, exécutez sudo chmod u+x replace_string
puis déplacez-le dans votre sudo mv replace_string /usr/local/bin
dossier pour pouvoir l'exécuter dans n'importe quel répertoire.
REMARQUE :cela ne fonctionne que sur Linux (testé sur Ubuntu) et échoue sur MacOS. Soyez également prudent avec cela car cela peut gâcher des choses comme les fichiers git. Je ne l'ai pas non plus testé sur les binaires.
#!/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
Une variante qui prend en compte les sous-répertoires (non testée) :
find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;
Ce sera find
tous les fichiers (pas les répertoires, spécifiés par -type f
) sous /var/www
, et effectuez un sed
commande pour remplacer "privilèges" par "privilèges" sur chaque fichier qu'il trouve.