Shell實(shí)現(xiàn)批量操作文件的方法詳解
1.文件夾結(jié)構(gòu)
準(zhǔn)備如下文件夾結(jié)構(gòu)作為演示:
如E:\Code\Shell有如下文件夾結(jié)構(gòu),有3個(gè)相同文件test.txt
2.查找某文件夾下指定文件所在的路徑
find可以查找某個(gè)目錄下的指定文件(或目錄)所在的路徑
find 目錄名 -name 文件名
# 查找Shell文件夾下test.txt所在路徑 find Shell -name test.txt
執(zhí)行結(jié)果:
Shell/a/test/test.txt
Shell/b/test/test.txt
Shell/c/test/test.txt
如果不指定目錄名,則是查找當(dāng)前文件夾下的文件
# 查找當(dāng)前文件夾下的test.txt所在路徑 find -name test.txt
執(zhí)行結(jié)果:
./Shell/a/test/test.txt
./Shell/b/test/test.txt
./Shell/c/test/test.txt
3.批量刪除某個(gè)文件夾下的指定文件
刪除某個(gè)目錄下的指定文件(或目錄)
find 目錄名 -name 文件名 |xargs rm -rf
# 刪除Shell文件夾下所有test.txt find Shell -name test.txt |xargs rm -rf
刪除test.txt后的文件夾結(jié)構(gòu)如下
4.批量重命名某文件夾下指定的文件名
編寫腳本batch_rename_file.sh,內(nèi)容如下:
# 批量重命名指定文件夾下的文件名或目錄名 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
執(zhí)行腳本,結(jié)果如下:
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后的文件夾結(jié)構(gòu)如下:
5.批量將某文件夾下指定文件移至上級(jí)目錄
編寫腳本mv_file_to_upperLevel.sh,內(nèi)容如下:
# 批量將指定文件夾下的文件或目錄,移至上級(jí)目錄 fileName="test.txt" # 文件名 targetFolder="Shell" # 指定文件夾名 for filePath in `find $targetFolder -name $fileName` do upperLevelDir=`dirname $(dirname $filePath)` # 上級(jí)目錄 mv $filePath $upperLevelDir echo "$filePath -> $upperLevelDir/$fileName" done
執(zhí)行腳本,結(jié)果如下:
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
移動(dòng)test.txt至上級(jí)目錄后的文件夾結(jié)構(gòu)如下:
到此這篇關(guān)于Shell實(shí)現(xiàn)批量操作文件的方法詳解的文章就介紹到這了,更多相關(guān)Shell批量操作文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
查看linux中某個(gè)端口(port)是否被占用的方法
下面小編就為大家?guī)硪黄榭磍inux中某個(gè)端口(port)是否被占用的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05Linux traceroute命令使用方法實(shí)例詳解
這篇文章主要介紹了Linux traceroute命令使用方法實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解應(yīng)用這部分內(nèi)容, 需要的朋友可以參考下2017-10-10Linux下使用expect命令編寫自動(dòng)化交互腳本
今天小編就為大家分享一篇關(guān)于Linux下使用expect命令編寫自動(dòng)化交互腳本,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-11-11Linux 下xargs命令詳解及xargs與管道的區(qū)別
在工作中經(jīng)常會(huì)接觸到xargs命令,特別是在別人寫的腳本里面也經(jīng)常會(huì)遇到,但是卻很容易與管道搞混淆,本篇會(huì)詳細(xì)講解到底什么是xargs命令,為什么要用xargs命令以及與管道的區(qū)別,本文通過實(shí)例給大家詳解,需要的的朋友參考下2017-04-04一天一個(gè)shell命令 linux文本內(nèi)容操作系列-grep命令詳解
這篇文章主要介紹了一天一個(gè)shell命令 linux文本內(nèi)容操作系列-grep命令詳解 ,需要的朋友可以參考下2016-06-06Shell編程中的特殊變量之進(jìn)程狀態(tài)變量介紹
這篇文章主要介紹了Shell編程中的特殊變量之進(jìn)程狀態(tài)變量介紹,本文講解了$$、$!、$?、$@、$_這些特殊變量,需要的朋友可以參考下2014-12-12