文件批量重命名脚本使用指南
本文介绍了一个用于批量重命名文件的 Bash 脚本 rename.sh
,并提供了详细的使用方法和示例。
脚本内容
#!/usr/bin/env bash
# rename.sh 路径 原字符串 新字符串
dir=$1
backuppath=${dir}backup/
if [ ! -d "$backuppath" ]; then
mkdir "$backuppath"
else
rm -rf "$backuppath"
echo "remove $backuppath"
mkdir "$backuppath"
fi
for file_path in $(ls "$1"); do
new_path=${dir}${file_path/$2/$3}
if [[ ! -f "$new_path" ]] && [[ "$dir$file_path" != "$new_path" ]]; then
# cp $dir$file_path $backuppath$file_path
mv "$dir$file_path" "$new_path"
# echo "backup to backup/$file_path, move to $new_path"
echo "move to $new_path"
# 下面这段替换了文件中的内容,不需要可注释掉
sed -i "s/$2/$3/g" "$new_path"
else
echo "File already exists $new_path"
fi
done
使用方法
运行脚本时需要提供以下参数:
- 脚本全路径
- 重命名的目录路径(最后要带
/
) - 需要替换的原字符串
- 替换后的新字符串
示例:
sh /home/service/data/tidb-util/bin/rename.sh /home/service/data/pull_db/pull_db_csv_20210303/ marlin_dev marlin_prod
在上述示例中,脚本会将 /home/service/data/pull_db/pull_db_csv_20210303/
目录下所有文件名中的 marlin_dev
替换为 marlin_prod
,并将原文件备份到 backup
目录中。