Linux?shell中改文件名的方法總結(jié)
方法一:mv——單個(gè)文件的修改和移動(dòng)文件
$ mv aa AA #把文件名為aa的文件改為AA
方法二:rename——應(yīng)用于多文件批量修改
$ rename [ -v ] [ -n ] [ -f ] # -v被替換掉的字符串 -n 替換成的字符串 -f 匹配要替換的文件模式;支持匹配多個(gè)文件
例如:更改文件名中的字符串
$ ls aaa aaaaaaaa aaabbbaaa bbb $ rename bbb BBB * aaa aaaaaaaa aaaBBBaaa BBB
對(duì)于命名不規(guī)律的文件名,添加/刪除后綴
$ ls aaa.AA aaaaaaaa.AA aaabbbaaa.AA bbb.AA $ rename .AA "" * aaa aaaaaaaa aaabbbaaa bbb # 用引號(hào)引出空即可
方法三:xargs與mv 聯(lián)合,添加/刪除后綴
$ ls |xargs -t -i sh -c "mv {} {}.AA" sh -c mv aaa aaa.AA sh -c mv aaaaa aaaaa.AA sh -c mv aaabbb aaabbb.AA # xargs 和mv 批量添加后綴 $ ls |sed 's/.AA//'|xargs -t -i sh -c "mv {}.AA {}" sh -c mv aaa.AA aaa sh -c mv aaaaa.AA aaaaa sh -c mv aaabbb.AA aaabbb # xargs、mv、sed批量刪除后綴
方法四:簡(jiǎn)單的for循環(huán)
$ for name in `ls *`;do mv $name ${name%.AA};done #用于去除后綴
根據(jù)自己的習(xí)慣選擇合適的方法,總結(jié)下來(lái),我認(rèn)為rename 可以滿足大部分的操作需求 ,可以多次嘗試,從此改名變得簡(jiǎn)單~~
附:shell 命令解壓縮zip文件夾并且對(duì)解壓后的文件重命名(批量)
先說(shuō)一下目錄結(jié)構(gòu),在/home/test文件夾下有N個(gè)文件夾,例如2019.1 2019.2 2019.3 等等,同時(shí)在每個(gè)文件夾下有N個(gè)ZIP文件,例如
a.txt.zip b.doc.zip c.html.zip d.pdf.zip等等.因?yàn)槊總€(gè)zip文件中存在的名稱都是一樣的且沒(méi)有后綴,例如都是test.因此需要對(duì)解壓后的文件進(jìn)行重命名,否則都會(huì)變成一個(gè)文件,且覆蓋.
說(shuō)完問(wèn)題描述后,給大家看一下寫的代碼,在服務(wù)器上執(zhí)行后,效果和預(yù)期的一樣!
#!/bin/sh #============ unzip the file =========== Folder="/home/test" for file in ${Folder}/*; do file_name=`basename $file` cd ${Folder}/$file_name ( for unzip in ${Folder}/$file_name/*.zip; do unzip_name=`basename $unzip` rname=${unzip_name:0:${#unzip_name}-4} unzip -o -O gbk $unzip_name && mv `unzip -l $unzip_name | awk '{if(NR == 4){ print $4}}'` $rname # rm -f $unzip_name 是否刪除 done ) done
總結(jié)
到此這篇關(guān)于Linux shell中改文件名的方法的文章就介紹到這了,更多相關(guān)shell改文件名方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本中調(diào)用、引用、包含另外一個(gè)腳本文件的兩種方法
這篇文章主要介紹了Shell腳本中調(diào)用、引用、包含另外一個(gè)腳本文件的兩種方法,本文介紹的兩種方法適合在當(dāng)前目錄下,需要的朋友可以參考下2014-12-12Shell腳本實(shí)現(xiàn)在Linux系統(tǒng)中自動(dòng)安裝JDK
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)在Linux系統(tǒng)中自動(dòng)安裝JDK,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01Linux?signal()函數(shù)的使用學(xué)習(xí)
這篇文章主要為大家介紹了Linux?signal()函數(shù)的使用學(xué)習(xí)及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Linux 按時(shí)間批量刪除文件命令(刪除N天前文件)
這篇文章主要介紹了Linux 按時(shí)間批量刪除文件的命令寫法(刪除N天前文件),需要的朋友可以參考下2017-05-05Shell腳本實(shí)戰(zhàn)之DNS主從同步腳本實(shí)例
這篇文章主要介紹了Shell腳本實(shí)戰(zhàn)之DNS主從同步腳本實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10