Linux?shell中改文件名的方法總結(jié)
方法一:mv——單個文件的修改和移動文件
$ mv aa AA #把文件名為aa的文件改為AA
方法二:rename——應(yīng)用于多文件批量修改
$ rename [ -v ] [ -n ] [ -f ] # -v被替換掉的字符串 -n 替換成的字符串 -f 匹配要替換的文件模式;支持匹配多個文件
例如:更改文件名中的字符串
$ ls aaa aaaaaaaa aaabbbaaa bbb $ rename bbb BBB * aaa aaaaaaaa aaaBBBaaa BBB
對于命名不規(guī)律的文件名,添加/刪除后綴
$ ls aaa.AA aaaaaaaa.AA aaabbbaaa.AA bbb.AA $ rename .AA "" * aaa aaaaaaaa aaabbbaaa bbb # 用引號引出空即可
方法三: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批量刪除后綴
方法四:簡單的for循環(huán)
$ for name in `ls *`;do mv $name ${name%.AA};done #用于去除后綴
根據(jù)自己的習慣選擇合適的方法,總結(jié)下來,我認為rename 可以滿足大部分的操作需求 ,可以多次嘗試,從此改名變得簡單~~
附:shell 命令解壓縮zip文件夾并且對解壓后的文件重命名(批量)
先說一下目錄結(jié)構(gòu),在/home/test文件夾下有N個文件夾,例如2019.1 2019.2 2019.3 等等,同時在每個文件夾下有N個ZIP文件,例如
a.txt.zip b.doc.zip c.html.zip d.pdf.zip等等.因為每個zip文件中存在的名稱都是一樣的且沒有后綴,例如都是test.因此需要對解壓后的文件進行重命名,否則都會變成一個文件,且覆蓋.
說完問題描述后,給大家看一下寫的代碼,在服務(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本中調(diào)用、引用、包含另外一個腳本文件的兩種方法
這篇文章主要介紹了Shell腳本中調(diào)用、引用、包含另外一個腳本文件的兩種方法,本文介紹的兩種方法適合在當前目錄下,需要的朋友可以參考下2014-12-12Shell腳本實現(xiàn)在Linux系統(tǒng)中自動安裝JDK
這篇文章主要介紹了Shell腳本實現(xiàn)在Linux系統(tǒng)中自動安裝JDK,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-01-01