您好,登錄后才能下訂單哦!
今天小編給大家分享一下linux修改文件名命令怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
linux修改文件名的命令有兩個:1、mv命令,既可以重命名文件,又可以移動文件或文件夾,修改語法“mv [參數] 舊文件名 新文件名”;2、rename命令,可用字符串替換的方式批量改變文件名,語法“rename [參數] 舊文件名 新文件名”。
1、使用mv命令
mv命令既可以重命名,又可以移動文件或文件夾。
mv [參數] 舊文件/目錄 新文件名/目錄
例子:將目錄A重命名為B
mv A B
例子:將/a目錄移動到/b下,并重命名為c
mv /a /b/c
其實在文本模式中要重命名文件或目錄,只需要使用mv命令就可以了,比如說要將一個名為abc的文件重命名為1234:
mv abc 1234
注意,如果當前目錄下也有個1234的文件的話,這個文件是會將它覆蓋的。
如何使用mv命令重命名多個文件?
mv命令一次只能重命名一個文件,但它可以與其他命令一起使用,例如find在bash for或while循環來重命名多個文件。
示例:如何通過使用bash for循環來重命名當前目錄中的所有.html文件,將.html擴展名更改為.php。
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
讓我們逐行分析代碼:
● 第一行創建一個for循環并遍歷一個包含所有文件的列表.html。
● 第二行適用于列表中的每個項目和文件移動到一個新的替換.html用.php。該部分${file%.html}使用shell參數擴展.html從文件名中刪除部分。
● done表示循環段的結束。
我們也可以mv結合使用該命令find來實現與上面相同的功能。
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
find命令使用該開關將所有.html以當前目錄結尾的文件mv一個接一個地傳遞給命令-exec。該字符串{}是當前正在處理的文件的名稱。
上面的示例中可以看出,使用該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支持正則表達式
# 把文件名中的AA替換成aa
rename "s/AA/aa/" *
# 把.html 后綴的改成 .php后綴
rename "s//.html//.php/" *
# 把所有的文件名都以txt結尾
rename "s/$//.txt/" *
# 把所有以.txt結尾的文件名的.txt刪掉
rename "s//.txt//" *
默認情況下,重命名命令不會覆蓋現有文件;但傳遞-f參數就可以允許覆蓋現有文件。
rename -f 's/.html/.php/' *.html
常見的使用rename命令示例
用下劃線替換文件名中的空格
rename 'y/ /_/' *
將文件名轉換為小寫
rename 'y/A-Z/a-z/' *
將文件名轉換為大寫
rename 'y/a-z/A-Z/' *
以上就是“linux修改文件名命令怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。