内容介绍
- 1.文件夹结构
- 2.查找某文件夹下指定文件所在的路径
- 3.批量删除某个文件夹下的指定文件
- 4.批量重命名某文件夹下指定的文件名
- 5.批量将某文件夹下指定文件移至上级内容介绍
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批量操作文件内容请搜索站长源码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长源码网!
本文从互联网转载,来源地址:www.downzz.com/linux-shell/247956.html,原作者保留一切权利,若侵权或引用不当,请联系九八云(cmy.cn)删除。【九八云,优质云服务器提供商】