Я обычно использую этот короткий скрипт, который переименует строку во всех файлах и во всех именах каталогов и именах файлов. Чтобы использовать его, вы можете скопировать приведенный ниже текст в файл с именем 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