Shell批量重命名文件名

Shell批量重命名文件名

 

Shell批量重命名文件名
#!/bin/sh
#替换文件名中的空格
find . -name "* *"|
while read name;do
    na=$(echo $name | tr ' ' '_')
    mv "$name" $na
done

#将文件名替换成1、2、3、4、5、6等文件名,后缀名保持不变(例如test.log -->1.log)
for file in `find . -type f -name "*"`;do 
dirname=`dirname $file`

 i=`expr $i + 1`;
#获取文件后缀名
 P="${file##*.}"
echo $file $dirname/$i.$P;

mv $file $dirname/$i.$P;
done

 

### 使用 Shell 脚本批量重命名文件 为了实现批量重命名文件的功能,可以编写一个简单的 Shell 脚本来完成这一任务。下面是一个基于给定需求的脚本实例: #### 方法一:简单添加前缀 如果目的是为所有文件名添加特定前缀,则可采用如下方法[^1]: ```bash #!/bin/bash # 设置要修改的目录路径和前缀 directory="/path/to/directory" prefix="new_" # 遍历目录下的所有文件 for file in "$directory"/*; do # 获取文件名(不包含路径) filename=$(basename "$file") # 添加前缀并重命名文件 mv "$file" "$directory/$prefix$filename" done echo "文件名已成功添加前缀!" ``` #### 方法二:进入指定文件夹进行重命名 当需要更灵活地控制哪些文件应该被重命名时,可以选择先进入目标文件夹再逐一处理各个文件[^2]: ```bash #!/bin/bash # 指定文件夹路径 directory="/path/to/directory" # 进入指定文件夹 cd "$directory" || exit # 获取所有需要重命名文件列表 files=$(ls) # 循环遍历文件列表,进行重命名操作 for file in $files; do # 检查文件是否是需要重命名的目标文件 if [[ -f "$file" ]]; then # 新文件名为在原文件名前加上前缀 new_name="prefix_$file" # 执行重命名操作 mv "$file" "$new_name" # 输出重命名信息 echo "Renamed $file to $new_name" fi done ``` #### 方法三:按序号重命名 PCD 文件 对于特殊类型的文件如PCD点云数据文件,可能希望按照一定顺序重新编号保存它们[^3]: ```bash let i=1 # 创建计数器变量 path=/mnt/hgfs/H/20230227 # 定义源文件所在位置 mkdir -p ${path}/original # 准备好备份用子目录 # 对于每一个符合条件的.pcd文件... for file in "${path}"/*.pcd ;do cp "$file" "${path}/original/" # 将原始文件复制到backup下作为副本 target="${path}/${i}.pcd" # 构造新的文件名称 while [ -e "$target" ]; do # 如果新名字已经存在则继续尝试下一个数字 ((i++)) target="${path}/${i}.pcd" done mv "$file" "$target" # 实际执行改名动作 echo "'${file}' renamed as '${i}.pcd'" # 屏幕提示已完成的操作 ((i++)) # 更新计数值以便下次循环使用 done ``` 以上三种方式展示了不同场景下的批处理逻辑,具体应用取决于实际的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值