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

2023-12-05 0 235
目录
  • 方法一:mv——单个文件的修改和移动文件
  • 方法二:rename——应用于多文件批量修改
  • 方法三:xargs与mv 联合,添加/删除后缀
  • 方法四:简单的for循环
  • 附:shell 命令解压缩zip文件夹并且对解压后的文件重命名(批量)
  • 总结

方法一: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

总结

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

您可能感兴趣的文章:

  • Linux shell利用sed如何批量更改文件名详解
  • Shell命令批量修改图片文件名

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 linux shell Linux shell中改文件名的方法总结 https://www.u-9.cn/jiaoben/linuxshell/101624.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务