美文网首页Linux
Linux下批量修改文件名

Linux下批量修改文件名

作者: 云养江停 | 来源:发表于2021-11-16 09:38 被阅读0次

    方法一:Rename函数

    Linux下修改文件名有mv和rename。其中mv命令只能对单个文件重命名这是mv命令和rename命令的在重命名方面的根本区别。

    linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
    输入man rename 看到第一行是:
    RENAME(1) Linux Programmer’s Manual RENAME(1)
    这个就是C语言版本的
    而如果出现:
    RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

    C语言版本格式:rename 原字符串 新字符串 文件名
    Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

    rename支持正则表达式

    例子:

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

    方法二:mv函数

    在文件夹shell下创建文件10个文件
    touch tmp_{1..10}.txt
    找到含有“_“”的文件夹。
    find ./ -name "*_*"
    读取id, 用mv改名,$为自己理解为赋值后的id,格式为

    find ./ -name "*_*" | while read id 
    do 
    mv $id ${id/_/-}
    done
    

    相关文章

      网友评论

        本文标题:Linux下批量修改文件名

        本文链接:https://www.haomeiwen.com/subject/rhthtrtx.html