Shell实现批量操作文件的方法详解

 更新时间:2022年09月29日 09:24:22   作者:将冲破艾迪i  
这篇文章主要为大家总结了一下Shell实现批量操作文件的命令,例如:查找某文件夹下指定文件所在的路径、批量删除某个文件夹下的指定文件,感兴趣的可以了解一下

1.文件夹结构

准备如下文件夹结构作为演示:

如E:\Code\Shell有如下文件夹结构,有3个相同文件test.txt

2.查找某文件夹下指定文件所在的路径

find可以查找某个目录下的指定文件(或目录)所在的路径

find 目录名 -name 文件名
# 查找Shell文件夹下test.txt所在路径
find Shell -name test.txt

执行结果:

Shell/a/test/test.txt
Shell/b/test/test.txt
Shell/c/test/test.txt

如果不指定目录名,则是查找当前文件夹下的文件

# 查找当前文件夹下的test.txt所在路径
find -name test.txt

执行结果:

./Shell/a/test/test.txt
./Shell/b/test/test.txt
./Shell/c/test/test.txt

3.批量删除某个文件夹下的指定文件

删除某个目录下的指定文件(或目录)

find 目录名 -name 文件名 |xargs rm -rf
# 删除Shell文件夹下所有test.txt
find Shell -name test.txt |xargs rm -rf

删除test.txt后的文件夹结构如下

4.批量重命名某文件夹下指定的文件名

编写脚本batch_rename_file.sh,内容如下:

# 批量重命名指定文件夹下的文件名或目录名
oldFileName="test.txt" # 原文件名
newFileName="case.txt" # 新文件名
targetFolder="Shell" # 指定文件夹名

for filePath in  `find $targetFolder -name $oldFileName`
do
    dirPath=`dirname $filePath` # 文件所在目录
    mv $filePath $dirPath/$newFileName
    echo "$filePath -> $dirPath/$newFileName"
done

执行脚本,结果如下:

Shell/a/test/test.txt -> Shell/a/test/case.txt
Shell/b/test/test.txt -> Shell/b/test/case.txt
Shell/c/test/test.txt -> Shell/c/test/case.txt

重命名test.txt后的文件夹结构如下:

5.批量将某文件夹下指定文件移至上级目录

编写脚本mv_file_to_upperLevel.sh,内容如下:

# 批量将指定文件夹下的文件或目录,移至上级目录
fileName="test.txt" # 文件名
targetFolder="Shell" # 指定文件夹名

for filePath in  `find $targetFolder -name $fileName`
do
    upperLevelDir=`dirname $(dirname $filePath)` # 上级目录
    mv $filePath $upperLevelDir
    echo "$filePath -> $upperLevelDir/$fileName"
done

执行脚本,结果如下:

Shell/a/test/test.txt -> Shell/a/test.txt
Shell/b/test/test.txt -> Shell/b/test.txt
Shell/c/test/test.txt -> Shell/c/test.txt

移动test.txt至上级目录后的文件夹结构如下:

到此这篇关于Shell实现批量操作文件的方法详解的文章就介绍到这了,更多相关Shell批量操作文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用shell脚本实现自动切换内网和外网实现高可用

    用shell脚本实现自动切换内网和外网实现高可用

    因为公司的服务器这段时间内网网卡老是出现问题,然后就导致了网站的各种问题,因为我们的数据库链接,redis还有sphinx链接都是走的内网,,所以就写了这个脚本,在线上也跑了一段时间了,,也没出过什么问题
    2013-06-06
  • Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    这篇文章主要介绍了Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享,本文先是讲解了SSH免密码登录的创建过程,然后给出了可以分发、部署密钥的Shell脚本,需要的朋友可以参考下
    2014-09-09
  • 在shell或者perl中改变字体或背景的颜色

    在shell或者perl中改变字体或背景的颜色

    有时候在运行别人写的脚本的时候,在黑乎乎的终端下显示了不同的颜色,好生的羡慕啊,今天就来分享一下,分别在shell和perl中怎么改变我们输出的字体的颜色
    2014-04-04
  • 解决linux 所有命令无法使用的问题

    解决linux 所有命令无法使用的问题

    今天小编就为大家分享一篇解决linux 所有命令无法使用的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • awk区间取值的例子

    awk区间取值的例子

    awk区间取值的例子,匹配某一区间内的值,有需要的朋友不妨参考下
    2013-02-02
  • centos/rhel下实现nginx自启动脚本实例

    centos/rhel下实现nginx自启动脚本实例

    这篇文章主要介绍了centos/rhel下实现nginx自启动脚本,需要的朋友可以参考下
    2014-07-07
  • fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法

    fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法

    下面小编就为大家带来一篇fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • linux shell中“.” 和 “./”执行的区别详解

    linux shell中“.” 和 “./”执行的区别详解

    这篇文章主要介绍了linux shell中“.” 和 “./”执行的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Shell脚本编程30分钟入门(小结)

    Shell脚本编程30分钟入门(小结)

    这篇文章主要介绍了Shell脚本编程30分钟入门(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Shell expr命令进行整数计算的实现

    Shell expr命令进行整数计算的实现

    这篇文章主要介绍了Shell expr命令进行整数计算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论