Sehen Sie sich das an:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
cd /var/www
sed -i 's/privelages/privileges/g' *
Ich verwende im Allgemeinen dieses kurze Skript, das eine Zeichenfolge in allen Dateien und allen Verzeichnis- und Dateinamen umbenennt. Um es zu verwenden, können Sie den folgenden Text in eine Datei namens replace_string
kopieren , führen Sie sudo chmod u+x replace_string
aus und verschieben Sie es dann in Ihre sudo mv replace_string /usr/local/bin
Ordner, um es in einem beliebigen Verzeichnis ausführen zu können.
HINWEIS:Dies funktioniert nur unter Linux (getestet auf Ubuntu) und schlägt unter MacOS fehl. Seien Sie auch damit vorsichtig, da es Dinge wie Git-Dateien durcheinander bringen kann. Ich habe es auch nicht auf Binärdateien getestet.
#!/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
Eine Variante, die Unterverzeichnisse berücksichtigt (ungetestet):
find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;
Dies wird find
alle Dateien (keine Verzeichnisse, spezifiziert durch -type f
) unter /var/www
, und führen Sie einen sed
aus Befehl, "Privilegien" in jeder gefundenen Datei durch "Privilegien" zu ersetzen.