首頁  >  文章  >  運維  >  linux修改檔名指令是什麼

linux修改檔名指令是什麼

青灯夜游
青灯夜游原創
2023-02-23 12:05:0650295瀏覽

linux修改文件名的指令有兩個:1、mv指令,既可以重命名文件,又可以移動文件或資料夾,修改語法「mv [參數] 舊檔名新文件名」; 2.rename指令,可用字串取代的方式批次改變檔名,語法「rename [參數] 舊檔名新檔名」。

linux修改檔名指令是什麼

本教學操作環境:CentOS 6系統、Dell G3電腦。

在Linux下重新命名檔案或目錄,可以使用mv指令或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影片教學

#

以上是linux修改檔名指令是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn