これをチェックしてください:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
cd /var/www
sed -i 's/privelages/privileges/g' *
私は通常、この短いスクリプトを使用します。これは、すべてのファイルとすべてのディレクトリ名とファイル名の文字列の名前を変更します。これを使用するには、以下のテキストを replace_string
というファイルにコピーします。 、 sudo chmod u+x replace_string
を実行します それを sudo mv replace_string /usr/local/bin
に移動します フォルダを作成して、任意のディレクトリで実行できるようにします。
注:これは Linux (ubuntu でテスト済み) でのみ機能し、MacOS では失敗します。また、git ファイルなどを台無しにする可能性があるため、これにも注意してください。バイナリでもテストしていません。
#!/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
サブディレクトリを考慮したバリエーション (未テスト):
find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;
これは find
になります すべてのファイル (ディレクトリではなく、-type f
で指定) ) /var/www
の下 、 sed
を実行します 見つかった各ファイルの "privelages" を "privileges" に置き換えるコマンド。