(一) Linux文件名转windows文件名

在Linux下对于文件的命名基本没有多大限制(不能有”/”),但是在windows下,文件名不允许有
\ / : * ? " < > |,所以如果需要复制文件的时候,在Linux下面命名正确的文件就需要检查命令规则,看是否满足windows的命名规则,主要是检查文件名时候有\ / : * ? " < > |这几个字符,然后将该字符转换为’-’。

这里介绍一个功能比较强大的重命名命令rename:

rename命令的格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v, --verboseVerbose: print names of files successfully renamed.
-n, --no-actNo Action: show what files would have been renamed.
-f, --forceForce: overwrite existing files.

简单的rename使用命令:
字母的替换
rename "s/AA/aa/" *             //把文件名中的AA替换成aa
修改文件的后缀
rename "s/.html/.php/" *     //把.html 后缀的改成 .php后缀
批量添加文件后缀
rename "s/$/.txt/" *             //把所有的文件名都以txt结尾
批量删除文件名
rename "s/.txt//" *               //把所有以.txt结尾的文件名的.txt删掉

(1)         使用rename命令:由于双引号和”\”在rename命令中会被shell特殊功能扩展,所以暂时还不能替换这两个

find path -type f | xargs rename 's/[:*?<>|]/-/g'

(2)         使用sed命令:由于双引号和”\”在sed命令中会被shell特殊功能扩展,所以暂时还不能替换这两个(注意由于使用sh的时候会创建很多新进程效率较低)

find path -type f |

 sed -n 'h;s#.*/##;s#[:*?<>|]#-#g;ta; a:G;s#^[\n]∗[\n]∗\n.∗/.∗/[/]∗[/]∗$#mv \2\3 \2\1#' | sh –x

 

(二)批量修改同格式的文件名

如果要修改的文件名的格式一致,可以使用

(1)            find ./ -name xxx -exec mv {} {}.xx \

这个是最简单的了,但是有一点不好的是只能在后面加个后缀

(2)            find ./ -name xxx | xargs -I mv {} {}.xx

(3)            find ./ -name XXX | awk ''{printf("mv %s \t %s \n",$1,$1)}'' | sh

awk 里面可以自由发挥 单纯的对文件名处理来说 还不是awk的强项(注意由于使用sh的时候会创建很多新进程效率较低)

(4)            find ./ -name xxx | sed ''s/XXX/mv xxx xxxxx/'' | sh

(注意由于使用sh的时候会创建很多新进程效率较低)

(5)            ls | sed 's/.old$//'|xargs -I {} mv {}.old {}

创建进程的消耗是很大的,所以能用xargs的时候就不要用 |sh

批量修改文件名(find rename sed)相关推荐

  1. linux find 批量改名,批量修改文件名(find rename sed)

    (一) Linux文件名转windows文件名 在Linux下对于文件的命名基本没有多大限制(不能有"/"),但是在windows下,文件名不允许有 \ / : * ? " ...

  2. Linux下批量修改文件名(rename)

    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...

  3. rename 批量修改文件名简单用法

    有的时候我们需要批量创建文件做测试,为了做区分,一般只要稍稍动动文件名即可,MV命令既可以移动文件,也是可以修改文件名的,但批量修改文件名MV做不到,此时,我们可以用rename命令批量修改是蛮不错的 ...

  4. c 语言 批量更改文件名,rename 批量修改文件名

    rename与mv的区别就是mv只能对单个文件重命名,而rename可以批量修改文件名 linux中的rename有两种版本,一种是C语言版的,一种是Perl版的,如何区分系统里的rename是哪个版 ...

  5. linux批量替换文件名中的日期,rename:Linux 批量修改文件名命令,支持正则表达式...

    昨天有需要要用到 Linux 批量改文件名,网上查了下,大多都是用 shell 脚本来实现的.我看了看那几句 shell 脚本,那几个 % 和 $ 的符号实在是没搞懂,也不想花时间去研究,于是又搜了搜 ...

  6. linux下批量修改文件名精彩解答案例分享

    ######################################################### #linux下批量修改文件名精彩解答案例分享 #date:21:34 2011-11 ...

  7. Linux下批量修改文件名

    ##################################### #Linux下批量修改文件名案例分享 #date:2019-05-09 #Discuz论坛:www.slinuxserver ...

  8. linux 批量更换文件名,Linux下批量修改文件名的方法

    Linux下批量修改文件名的方法 在Linux环境下修改文件名可以有不同的命令方式,比如rename.mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改 ...

  9. Linux中批量修改文件名

    Linux中批量修改文件名 有时候我们有一个目录下面的文件名都需要重新命令 如: 以下有十个学生完成的脚本,现在需要将finish改为ing [root@slave test]# touch stud ...

最新文章

  1. Gbps接口面向汽车应用
  2. 微生物生态学中的挑战:建立对于群落功能与动态的预测性认识
  3. 免费参会!百度智能云:从编码到网络传输,揭秘低延音视频背后的技术架构...
  4. hdu 1561 The more, The Better 树形dp
  5. kata_Java中的功能性FizzBu​​zz Kata
  6. mysql的操作语句_Mysql最常用的操作语句收集
  7. docker php kafka,docker安装kafka
  8. 距离传感器 和摇一摇功能
  9. 16.1 Class类与Java反射
  10. fastjson list转json
  11. 2020区块链百强榜暨战疫优秀企业评选|链塔智库
  12. HDFS上大文件如何切分?
  13. 【backtrader回测】隔夜持仓 VS 日内交易
  14. 亲测可行ie8与ie11共存方法支持win7x64等
  15. RelativeLayout(相对布局)
  16. BPM与OA的简单了解
  17. 小凯机器人软件_Cruzr-Cruzr(机器人控制软件)下载 v1.5.20190706.48官方版--pc6下载站...
  18. JavaScript自用
  19. Photoshopcs6 自学笔记二 图像处理
  20. FMEA案例丨新版PFMEA功能分析怎么做?

热门文章

  1. java编写2 22 222_Java 基础编程二
  2. 共享单车神经网络预测(pytorch )每行代码详细解释
  3. 如何向icloud上传文件_苹果手机怎么把照片传到icloud
  4. php ci mysql框架_CodeIgniter框架数据库基本操作示例
  5. 那家注册了今日油条,饼多多,快手抓饼的公司终于被起诉了
  6. 道闸系统服务器内存不足,停车场智能道闸系统 常见问题及解决方案
  7. 微信小程序图片文字水平垂直居中对齐
  8. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
  9. 大厂笔试都考什么题?超详细的笔试试题【附带解析】数据分析
  10. uniapp实现视频通话功能