Shell实现批量操作文件的方法详解
目录
- 1.文件夹结构
- 2.查找某文件夹下指定文件所在的路径
- 3.批量删除某个文件夹下的指定文件
- 4.批量重命名某文件夹下指定的文件名
- 5.批量将某文件夹下指定文件移至上级目录
1.文件夹结构
准备如下文件夹 如E:\Code\Shell有如下文件夹结构,有3个相同文件test.txt find可以查找某个目录下的指定文件(或目录)所在的路径 执行结果: Shell/a/test/test.txt 如果不指定目录名,则是查找当前文件夹下的文件 执行结果: ./Shell/a/test/test.txt 删除某个目录下的指定文件(或目录) 删除test.txt后的文件夹结构如下 编写脚本BATch_rename_file.sh,内容如下: 执行脚本,结果如下: Shell/a/test/test.txt -> Shell/a/test/case.txt 重命名test.txt后的文件夹结构如下: 编写脚本mv_file_to_upperlevel.sh,内容如下: 执行脚本,结果如下: Shell/a/test/test.txt -> Shell/a/test.txt 移动test.txt至上级目录后的文件夹结构如下: 到此这篇关于Shell实现批量操作文件的方法详解的文章就介绍到这了,更多相关Shell批量操作文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!2.查找某文件夹下指定文件所在的路径
find 目录名 -name 文件名
# 查找Shell文件夹下test.txt所在路径
find Shell -name test.txt
Shell/b/test/test.txt
Shell/c/test/test.txt# 查找当前文件夹下的test.txt所在路径
find -name test.txt
./Shell/b/test/test.txt
./Shell/c/test/test.txt3.批量删除某个文件夹下的指定文件
find 目录名 -name 文件名 |xargs rm -rf
# 删除Shell文件夹下所有test.txt
find Shell -name test.txt |xargs rm -rf
4.批量重命名某文件夹下指定的文件名
# 批量重命名指定文件夹下的文件名或目录名
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/b/test/test.txt -> Shell/b/test/case.txt
Shell/c/test/test.txt -> Shell/c/test/case.txt5.批量将某文件夹下指定文件移至上级目录
# 批量将指定文件夹下的文件或目录,移至上级目录
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/b/test/test.txt -> Shell/b/test.txt
Shell/c/test/test.txt -> Shell/c/test.txt
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341