以下是一个示例的Bash脚本,用于替换文件名中的无效Windows字符:
#!/bin/bash
# 设置无效字符列表
invalid_chars='\\ / : * ? " < > |'
# 遍历目标目录中的所有文件
for file in /path/to/directory/*; do
# 获取文件名和扩展名
filename=$(basename "$file")
extension="${filename##*.}"
# 移除无效字符
new_filename=$(sed "s/[$invalid_chars]//g" <<< "$filename")
# 构建新的文件名
new_file="$new_filename.$extension"
# 如果文件名已更改,则重命名文件
if [[ "$filename" != "$new_file" ]]; then
mv "$file" "/path/to/directory/$new_file"
echo "Renamed '$filename' to '$new_file'"
fi
done
请注意,这个脚本假设你将目标目录的路径替换为 /path/to/directory/
。你可以根据自己的需求修改这个路径。
这个脚本首先设置了一个包含无效字符的字符串。然后,它使用一个循环遍历目标目录中的所有文件。对于每个文件,它获取文件名和扩展名,并使用 sed
命令将无效字符替换为空字符串。然后,它构建了一个新的文件名,并使用 mv
命令将文件重命名为新的文件名。
请记住,在运行脚本之前,请先做好备份,以防止意外的文件重命名。
上一篇:Bash脚本以添加和删除用户