今天小編給大家分享一下linux修改文件名命令怎么使用的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創(chuàng)新互聯(lián)公司專注于無錫企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城建設(shè)。無錫網(wǎng)站建設(shè)公司,為無錫等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
linux修改文件名的命令有兩個:1、mv命令,既可以重命名文件,又可以移動文件或文件夾,修改語法“mv [參數(shù)] 舊文件名 新文件名”;2、rename命令,可用字符串替換的方式批量改變文件名,語法“rename [參數(shù)] 舊文件名 新文件名”。
1、使用mv命令
mv命令既可以重命名,又可以移動文件或文件夾。
mv [參數(shù)] 舊文件/目錄 新文件名/目錄
例子:將目錄A重命名為B
mv A B
例子:將/a目錄移動到/b下,并重命名為c
mv /a /b/c
其實在文本模式中要重命名文件或目錄,只需要使用mv命令就可以了,比如說要將一個名為abc的文件重命名為1234:
mv abc 1234
注意,如果當(dāng)前目錄下也有個1234的文件的話,這個文件是會將它覆蓋的。
如何使用mv命令重命名多個文件?
mv命令一次只能重命名一個文件,但它可以與其他命令一起使用,例如find在bash for或while循環(huán)來重命名多個文件。
示例:如何通過使用bash for循環(huán)來重命名當(dāng)前目錄中的所有.html文件,將.html擴(kuò)展名更改為.php。
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
讓我們逐行分析代碼:
● 第一行創(chuàng)建一個for循環(huán)并遍歷一個包含所有文件的列表.html。
● 第二行適用于列表中的每個項目和文件移動到一個新的替換.html用.php。該部分${file%.html}使用shell參數(shù)擴(kuò)展.html從文件名中刪除部分。
● done表示循環(huán)段的結(jié)束。
我們也可以mv結(jié)合使用該命令find來實現(xiàn)與上面相同的功能。
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
find命令使用該開關(guān)將所有.html以當(dāng)前目錄結(jié)尾的文件mv一個接一個地傳遞給命令-exec。該字符串{}是當(dāng)前正在處理的文件的名稱。
上面的示例中可以看出,使用該mv命令重命名多個文件并不是一件容易的事,因為它需要很好地了解Bash腳本。
2、使用rename命令
rename命令用字符串替換的方式批量改變文件名。
重命名單個文件
# 將main1.c重命名為main.c
rename main1.c main.c main1.c
rename支持通配符
? 可替代單個字符
* 可替代多個字符
[charset] 可替代charset集中的任意單個字符
文件夾中有這些文件foo1, …, foo9, foo10, …, foo278
如果使用rename foo foo0 foo?
,會把foo1到foo9的文件重命名為foo01到foo09,重命名的文件只是有4個字符長度名稱的文件,文件名中的foo被替換為foo0。
如果使用rename foo foo0 foo??
,foo01到foo99的所有文件都被重命名為foo001到foo099,只重命名5個字符長度名稱的文件,文件名中的foo被替換為foo0。
如果使用rename foo foo0 foo*
,foo001到foo278的所有文件都被重命名為foo0001到foo0278,所有以foo開頭的文件都被重命名。
如果使用rename foo0 foo foo0[2]*
,從foo0200到foo0278的所有文件都被重命名為foo200到foo278,文件名中的foo0被替換為foo。
rename支持正則表達(dá)式
# 把文件名中的AA替換成aa
rename "s/AA/aa/" *
# 把.html 后綴的改成 .php后綴
rename "s//.html//.php/" *
# 把所有的文件名都以txt結(jié)尾
rename "s/$//.txt/" *
# 把所有以.txt結(jié)尾的文件名的.txt刪掉
rename "s//.txt//" *
默認(rèn)情況下,重命名命令不會覆蓋現(xiàn)有文件;但傳遞-f參數(shù)就可以允許覆蓋現(xiàn)有文件。
rename -f 's/.html/.php/' *.html
常見的使用rename命令示例
用下劃線替換文件名中的空格
rename 'y/ /_/' *
將文件名轉(zhuǎn)換為小寫
rename 'y/A-Z/a-z/' *
將文件名轉(zhuǎn)換為大寫
rename 'y/a-z/A-Z/' *
以上就是“l(fā)inux修改文件名命令怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。