以下是一个遍历目录、查找文件并重命名的Bash脚本的解决方法,包含了代码示例:
#!/bin/bash
# 定义函数,用于遍历目录并重命名文件
function rename_files() {
local directory=$1
local target_file=$2
local new_name=$3
# 遍历目录中的所有文件和子目录
for file in $directory/*; do
if [[ -f "$file" ]]; then
# 如果是文件,则检查文件名是否匹配目标文件
if [[ $(basename "$file") == "$target_file" ]]; then
# 重命名文件
mv "$file" "$directory/$new_name"
echo "文件 $target_file 重命名为 $new_name"
fi
elif [[ -d "$file" ]]; then
# 如果是目录,则递归调用函数遍历子目录
rename_files "$file" "$target_file" "$new_name"
fi
done
}
# 输入要遍历的目录路径
read -p "请输入要遍历的目录路径: " directory
# 输入要查找和重命名的文件名
read -p "请输入要查找和重命名的文件名: " target_file
# 输入要重命名成的新名字
read -p "请输入要重命名成的新名字: " new_name
# 调用函数遍历目录并重命名文件
rename_files "$directory" "$target_file" "$new_name"
使用方法:
rename_files.sh
。chmod +x rename_files.sh
,授予脚本文件执行权限。./rename_files.sh
,按照提示输入要遍历的目录路径、要查找和重命名的文件名以及要重命名成的新名字。