共計 1944 個字符,預計需要花費 5 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下 linux 修改文件名命令怎么使用的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
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
注意,如果當前目錄下也有個 1234 的文件的話,這個文件是會將它覆蓋的。
如何使用 mv 命令重命名多個文件?
mv 命令一次只能重命名一個文件,但它可以與其他命令一起使用,例如 find 在 bash for 或 while 循環(huán)來重命名多個文件。
示例:如何通過使用 bash for 循環(huán)來重命名當前目錄中的所有.html 文件,將.html 擴展名更改為.php。
for f in *.html; do
mv -- $f ${f%.html}.php
done
讓我們逐行分析代碼:
● 第一行創(chuàng)建一個 for 循環(huán)并遍歷一個包含所有文件的列表.html。
● 第二行適用于列表中的每個項目和文件移動到一個新的替換.html 用.php。該部分 ${file%.html}使用 shell 參數(shù)擴展.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 以當前目錄結(jié)尾的文件 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 結(jié)尾
rename s/$//.txt/ *
# 把所有以.txt 結(jié)尾的文件名的.txt 刪掉
rename s//.txt// *
默認情況下,重命名命令不會覆蓋現(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)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注丸趣 TV 行業(yè)資訊頻道。