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改文件名方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用AWK在shell中生成日历小程序

    使用AWK在shell中生成日历小程序

    这篇文章主要为大家详细介绍了如何使用AWK在shell中生成日历小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Shell中使用scp命令实现文件上传代码

    Shell中使用scp命令实现文件上传代码

    这篇文章主要介绍了Shell中使用scp命令实现文件上传代码,本文讲解使用scp命令实现名登录上传文件,需要的朋友可以参考下
    2015-04-04
  • 在 Bash 中循环遍历文件内容的不同方法

    在 Bash 中循环遍历文件内容的不同方法

    本文介绍了在Bash脚本中遍历文件内容的几种方法,包括使用while循环和read命令逐行读取文件,使用for循环和cat命令读取整个文件内容,使用IFS变量进行单词循环,以及使用awk命令进行更高级的文本处理,每种方法都有其适用的场景和优缺点,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • linux patch 命令小结(收藏)

    linux patch 命令小结(收藏)

    说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。这篇文章主要介绍了linux patch 命令小结,需要的朋友可以参考下
    2017-02-02
  • 使用Shell实现ini文件的读写

    使用Shell实现ini文件的读写

    这篇文章主要为大家详细介绍了如何使用Shell实现ini文件的读写,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-11-11
  • 一个shell写的ping函数

    一个shell写的ping函数

    shell写的ping脚本,可实现简单交互,供大家学习参考吧
    2013-02-02
  • Shell脚本编写的八条可靠建议(值得收藏)

    Shell脚本编写的八条可靠建议(值得收藏)

    这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训,不夸张地说,每条都是精挑细选的,虽然有几点算是老生常谈了。好了,对shell脚本编写八条建议感兴趣的朋友一起看看吧
    2016-11-11
  • LINUX 生产环境搭建推荐教程

    LINUX 生产环境搭建推荐教程

    由于linux生产环境搭建步骤非常多,很繁琐而且又是必不可少的步骤。虽然已经做过很多次,但是由于步骤繁琐,很容易忘记,下面小编抽个时间把linux生产环境搭建步骤记录下来,分享在脚本之家平台,以便需要之时使用
    2015-10-10
  • Shell命令解析之set命令的用法和参数详解

    Shell命令解析之set命令的用法和参数详解

    set 命令作用主要是显示系统中已经存在的 shell 变量,以及设置 shell 变量的新变量值,这篇文章主要介绍了Shell命令解析之set命令的用法和参数详解,需要的朋友可以参考下
    2023-10-10
  • 详谈linux中sar的使用方法

    详谈linux中sar的使用方法

    下面小编就为大家带来一篇详谈linux中sar的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论