c语言版本linux批量改文件名,linux下批量更改文件名的方法总结

某一文件夹下有28个文件,他们都是像20131201、20131202这样命令的,要求把他们的最后都加上.bak[root@aa shuju]# ls

20131201 20131204 20131207 20131210 20131213 20131216 20131219 20131222 20131225 20131228

20131202 20131205 20131208 20131211 20131214 20131217 20131220 20131223 20131226

20131203 20131206 20131209 20131212 20131215 20131218 20131221 20131224 20131227

方法:

find ./ -type f |xargs -i mv {} {}.bak[root@aa shuju]# find ./ -type f |xargs -i mv {} {}.bak

[root@aa shuju]# ls

20131201.bak 20131205.bak 20131209.bak 20131213.bak 20131217.bak 20131221.bak 20131225.bak

20131202.bak 20131206.bak 20131210.bak 20131214.bak 20131218.bak 20131222.bak 20131226.bak

20131203.bak 20131207.bak 20131211.bak 20131215.bak 20131219.bak 20131223.bak 20131227.bak

20131204.bak 20131208.bak 20131212.bak 20131216.bak 20131220.bak 20131224.bak 20131228.bak

把后缀改为.bak1方法

rename .bak .bak1 *.bak

[root@aa shuju]# rename .bak .bak1 *.bak

[root@aa shuju]# ls

20131201.bak1 20131205.bak1 20131209.bak1 20131213.bak1 20131217.bak1 20131221.bak1 20131225.bak1

20131202.bak1 20131206.bak1 20131210.bak1 20131214.bak1 20131218.bak1 20131222.bak1 20131226.bak1

20131203.bak1 20131207.bak1 20131211.bak1 20131215.bak1 20131219.bak1 20131223.bak1 20131227.bak1

20131204.bak1 20131208.bak1 20131212.bak1 20131216.bak1 20131220.bak1 20131224.bak1 20131228.bak1

把后缀.bak1改为.bak

for i in `find ./ -type f`;do mv $i ${i%.*}.bak;doneroot@aa shuju]# for i in `find ./ -type f`;do mv $i ${i%.*}.bak;done

[root@aa shuju]# ls

20131201.bak 20131205.bak 20131209.bak 20131213.bak 20131217.bak 20131221.bak 20131225.bak

20131202.bak 20131206.bak 20131210.bak 20131214.bak 20131218.bak 20131222.bak 20131226.bak

20131203.bak 20131207.bak 20131211.bak 20131215.bak 20131219.bak 20131223.bak 20131227.bak

20131204.bak 20131208.bak 20131212.bak 20131216.bak 20131220.bak 20131224.bak 20131228.bak

C语言中,可以使用系统调用函数来批量修改文件名。首先需要打开目标文件夹,并使用相关函数列出目标文件夹中的所有文件名,然后循环遍历每个文件名,对每个文件名进行修改操作。 在打开目标文件夹时,可以使用`opendir`和`readdir`函数来获取文件夹中的文件名列表。然后可以使用`chdir`函数来进入文件夹内部,对每个文件名使用`rename`函数来进行文件名修改操作。需要注意的是,修改文件名时需要填写原文件名和新文件名。 具体的C语言代码可能如下所示: ```c #include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <string.h> int main() { DIR *dir; struct dirent *ent; if ((dir = opendir("path_to_folder")) != NULL) { // 打开目标文件夹 while ((ent = readdir(dir)) != NULL) { // 遍历文件夹中的文件名 if (ent->d_type == DT_REG) { // 判断是否为普通文件 char old_name[100]; char new_name[100]; sprintf(old_name, "path_to_folder/%s", ent->d_name); // 原文件名路径 sprintf(new_name, "path_to_folder/new_%s", ent->d_name); // 新文件名路径 rename(old_name, new_name); // 修改文件名 } } closedir(dir); // 关闭目标文件夹 } else { perror("Unable to open directory"); return 1; } return 0; } ``` 需要注意的是,以上代码只是一个示例,实际使用时需要替换`path_to_folder`为目标文件夹的实际路径,并根据具体需求进行代码调整。另外,修改文件名时需要考虑文件名的合法性和重复性,以免造成意外错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值