【linux學習】一個基於shell編程的批量修改文件名稱腳本

背景

一個目錄中很多有很多文件(或者文件夾),需要遍歷文件夾對文件進行操作,怎麼辦尼?
當然是用shell寫批處理腳本辣,

參考腳本

【1】遞歸打印文件名稱

切記穿入參數是絕對路徑就會輸出絕對路徑,穿入參數是相對路徑輸出相對路徑

function mvAtoa(){
	for file in `ls $1 ` ;
	do
		echo  "mv_$1/$file";## 打印文件名稱

		if [ -d $1/$file ];then #如果是文件夾遞歸
				mvAtoa $1/$file;
		fi;
	done
}

mvAtoa $1

【2】遞歸將文件名稱大寫改爲小寫

切記父文件名最好是小寫的哦,,要不是不行的)

function mvAtoa(){
	for file in `ls $1 ` ;
	do
		if [ `echo $1/$file | grep '[A-Z]'` ];then ## 此處主要是對文件的操作
				mv $1/$file `echo $1/$file | tr ‘A-Z’ ‘a-z’`;
				file=`echo $file | tr ‘A-Z’ ‘a-z’`;#重命名後更新file名
				echo  "mv_$1/$file";
		fi;

		if [ -d $1/$file ];then #如果是文件夾遞歸
				mvAtoa $1/$file;
		fi;
	done
}

mvAtoa $1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章