Linux shell中改文件名的方法总结

 更新时间:2023年06月27日 10:34:51   作者:叁叁137  
这篇文章主要给大家介绍了关于Linux shell中改文件名的方法,在Shell中有多种方法可以来修改文件名,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

方法一:mv——单个文件的修改和移动文件

$ mv aa AA
#把文件名为aa的文件改为AA

方法二:rename——应用于多文件批量修改

$ rename [ -v ] [ -n ] [ -f ] 
# -v被替换掉的字符串 -n 替换成的字符串 -f 匹配要替换的文件模式;支持匹配多个文件

例如:更改文件名中的字符串

$ ls
aaa  aaaaaaaa  aaabbbaaa  bbb
$ rename bbb BBB *
aaa  aaaaaaaa  aaaBBBaaa  BBB

对于命名不规律的文件名,添加/删除后缀

$ ls 
aaa.AA  aaaaaaaa.AA  aaabbbaaa.AA  bbb.AA
$ rename .AA "" *
aaa  aaaaaaaa  aaabbbaaa  bbb
# 用引号引出空即可

方法三:xargs与mv 联合,添加/删除后缀

$ ls |xargs -t -i sh -c "mv {} {}.AA"
sh -c mv aaa aaa.AA 
sh -c mv aaaaa aaaaa.AA 
sh -c mv aaabbb aaabbb.AA 
# xargs 和mv 批量添加后缀
 
$ ls |sed 's/.AA//'|xargs -t -i sh -c "mv {}.AA {}"
sh -c mv aaa.AA aaa 
sh -c mv aaaaa.AA aaaaa 
sh -c mv aaabbb.AA aaabbb 
# xargs、mv、sed批量删除后缀

方法四:简单的for循环

$ for name  in `ls *`;do mv $name ${name%.AA};done
#用于去除后缀

根据自己的习惯选择合适的方法,总结下来,我认为rename 可以满足大部分的操作需求 ,可以多次尝试,从此改名变得简单~~

附:shell 命令解压缩zip文件夹并且对解压后的文件重命名(批量)

先说一下目录结构,在/home/test文件夹下有N个文件夹,例如2019.1 2019.2 2019.3 等等,同时在每个文件夹下有N个ZIP文件,例如

a.txt.zip   b.doc.zip  c.html.zip   d.pdf.zip等等.因为每个zip文件中存在的名称都是一样的且没有后缀,例如都是test.因此需要对解压后的文件进行重命名,否则都会变成一个文件,且覆盖.

说完问题描述后,给大家看一下写的代码,在服务器上执行后,效果和预期的一样!

#!/bin/sh
#============ unzip the file ===========
Folder="/home/test"
for file in ${Folder}/*;
do
    file_name=`basename $file`
    cd ${Folder}/$file_name
    (
        for unzip in ${Folder}/$file_name/*.zip;
        do
                unzip_name=`basename $unzip`
                rname=${unzip_name:0:${#unzip_name}-4}
                unzip -o -O gbk  $unzip_name && mv `unzip -l $unzip_name | awk '{if(NR == 4){ print $4}}'` $rname
                # rm -f $unzip_name  是否删除
        done
    )
done

总结

到此这篇关于Linux shell中改文件名的方法的文章就介绍到这了,更多相关shell改文件名方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 强制删除rpm包的方法

    强制删除rpm包的方法

    本文给大家介绍强制删除rpm包,对rpm包删除方法感兴趣的朋友可以一起学习
    2015-11-11
  • shell脚本编程之数组

    shell脚本编程之数组

    数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标
    2016-01-01
  • Linux中grep命令详解

    Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下
    2023-02-02
  • Shell脚本中调用、引用、包含另外一个脚本文件的两种方法

    Shell脚本中调用、引用、包含另外一个脚本文件的两种方法

    这篇文章主要介绍了Shell脚本中调用、引用、包含另外一个脚本文件的两种方法,本文介绍的两种方法适合在当前目录下,需要的朋友可以参考下
    2014-12-12
  • Linux下有名管道mkfifo使用详解

    Linux下有名管道mkfifo使用详解

    有名管道用于非亲缘关系进程之间的通讯,创建有名管道使用到的库函数是mkfifo(),这里强调是库函数的原因是,mkfifo同时也是一个用户指令,这篇文章主要介绍了Linux下有名管道mkfifo使用,需要的朋友可以参考下
    2023-07-07
  • Shell脚本实现在Linux系统中自动安装JDK

    Shell脚本实现在Linux系统中自动安装JDK

    这篇文章主要介绍了Shell脚本实现在Linux系统中自动安装JDK,本文直接给出实现代码,需要的朋友可以参考下
    2015-01-01
  • Linux signal()函数的使用学习

    Linux signal()函数的使用学习

    这篇文章主要为大家介绍了Linux signal()函数的使用学习及示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Linux 按时间批量删除文件命令(删除N天前文件)

    Linux 按时间批量删除文件命令(删除N天前文件)

    这篇文章主要介绍了Linux 按时间批量删除文件的命令写法(删除N天前文件),需要的朋友可以参考下
    2017-05-05
  • Shell脚本实战之DNS主从同步脚本实例

    Shell脚本实战之DNS主从同步脚本实例

    这篇文章主要介绍了Shell脚本实战之DNS主从同步脚本实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • readelf命令读取elf文件的详细信息(推荐)

    readelf命令读取elf文件的详细信息(推荐)

    这篇文章主要介绍了readelf命令读取elf文件的详细信息,在这里使用一个elfDemo.rel作为示例,elfDemo.rel是elfDemo.c使用如下指令生成的,需要的朋友可以参考下
    2023-02-02

最新评论