91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用mv和rename命令重命名文件

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2023-01-17 17:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

重命名文件和目錄是您經(jīng)常需要在Linux系統(tǒng)上執(zhí)行的最基本任務之一。 重命名單個文件很簡單,但一次重命名多個文件可能是一個挑戰(zhàn)。

特別是對于剛接觸Linux的用戶而言。 您可以使用GUI文件管理器或命令行終端重命名文件。

mv命令重命名文件

mv命令用于將文件從一個位置重命名或移動到另一個位置。 這是mv命令的基本語法mv [OPTIONS] source destination。

source源可以是一個或多個文件或目錄,destination目標可以是單個文件或目錄。

如果指定多個文件作為源source,則destination目標必須是目錄。 在這種情況下,源文件將移動到目標目錄。

如果將單個文件指定為源source,并且目標是目錄,則該文件將移動到指定目錄。

要重命名文件,您需要將單個文件指定為源source,并將單個文件指定為目標destination。 例如,以下mv命令將file1.txt重命名為file2.txt

mv file1.txt file2.txt

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

讓我們解釋一下語句的含義,最容易理解當然是最后的一行是shell/bash的關(guān)鍵詞done表示循環(huán)的結(jié)束。

第一行創(chuàng)建一個for循環(huán)并遍歷當前目錄下以.html文件擴展名的文件。 第二行將.html文件移動并重命名文件。

并將文件的.html擴展名替換為.php。 ${f%.html}使用的是shell參數(shù)擴展,.html將會匹配文件名原來擴展名,匹配的.html將會被刪除。

從示例中可以看出,使用mv命令重命名多個文件并不是一件容易的事,因為它需要你很好地了解Bash腳本編程。

mv命令除了可以和shell腳本的for循環(huán)整合之外。 我們還可以讓mv結(jié)合find命令來實現(xiàn)與上面相同的功能。

我們還可以使用find命令搜索/查找當前目錄下以.html結(jié)尾的文件。 然后使用-exec對每個文件運行指定命令。

-exec允許你指定要運行的命令,find命令將搜索的每個結(jié)果一個接一個傳遞-exec要運行的命令中。

你可在-exec運行的命令使用字符串{}獲得正在處理的文件,如果你在使用find命令搜索文件使用絕對路徑,字符串{}將是一個文件的絕對路徑。

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \\;

這里我們解釋一下上面的find和-exec,mv是怎么配合使用的。

find命令之后.表示當前目錄,find的-depth選項表示遞歸當前目錄下的所有目錄,-name選項表示要使用名稱進行搜索。

"*.html"之所以加上雙引號是防止*號被shell解釋,*.html表示以.html作為擴展名的文件。

-exec sh -c表示-exec要運行命令是sh -c。 在類 Unix 操作系統(tǒng)上,sh是Bourne shell名名稱,是Unix和許多類Unix操作系統(tǒng)/Linux的標準命令語言解釋器。 -c是sh選項表示讀取命令字符串并運行。

'f="{}"; mv -- "$f" "${f%.html}.php"'這是一個命令的字符串,我想你應該知道大概含義,我們這里簡單說一下。 f="{}"表示將{}賦值給變量f,{} 是文件名。

最后'f="{}"; mv -- "$f" "${f%.html}.php"' 這個命令字符串將由sh來解釋并運行。 分號;結(jié)束exec執(zhí)行的命令。 它需要用\\進行轉(zhuǎn)義,這樣你在里面運行的shell 就不會把它當作自己的特殊字符,而是將它傳遞給find。

rename命令重命名文件

rename用于重命名多個文件。 rename命令相比mv,你需要一些正則表達式的高級知識。

rename命令有兩個版本,語法不同。 在本教程中,我們將使用rename命令的perl版本。 如果您的系統(tǒng)上未安裝此版本,則可以使用發(fā)行版的軟件包管理器安裝該版本。

如果你的計算機運行的是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint。 可運行命令sudo apt update && sudo apt install rename安裝rename。

對于基于Redhat的Linux發(fā)行版,例如CentOS,F(xiàn)edora。 可運行命令sudo apt update && sudo apt install rename安裝rename。

Arch Linux用戶可運行命令yay perl-rename或者yaourt -S perl-rename安裝rename。

sudo apt update && sudo apt install rename
sudo yum install prename
yay perl-rename ## or yaourt -S perl-rename

rename命令的語法是rename [OPTIONS] perlexpr files。 files表示多個文件,perlexpr是使用perl的正則表達式。

rename命令將多個文件根據(jù)指定的正則表達式重命名所有文件。 你可以在這里閱讀更多關(guān)于Perl的正則表達式的知識。

perl的正則表達式基本語法是action/SEARCHLIST/REPLACEMENTLIST/cdsr。 在重命名文件的perl正則表達式中常用的s///替換模式。

action 表示你要執(zhí)行操作,SEARCHLIST表示你要搜索的內(nèi)容,REPLACEMENTLIST表示你要REPLACEMENTLIST 替換SEARCHLIST

在使用rename重命名文件時,您還可以使用-n參數(shù)在不真實的運行reanme命令嘗試打印要重命名的文件的名稱。 這將不會不重命名你的文件,可以用來做簡單的測試。

默認情況下,rename命令不會覆蓋現(xiàn)有文件。 傳遞-f參數(shù)以允許覆蓋現(xiàn)有文件。

例如,下面的rename命令將更改與擴展名.html.php。

rename 's/.html/.php/' *.html
rename -f 's/.html/.php/' *.html #覆蓋現(xiàn)有文件
rename -n 's/.html/.php/' *.html #嘗試運行,用于測試

輸出看起來像這樣:

rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)

以下是一些如何使用rename命令的常見示例。

用下劃線替換文件名中的空格

rename 'y/ /_/' *

將文件名轉(zhuǎn)換為小寫

rename 'y/A-Z/a-z/' *

將文件名轉(zhuǎn)換為大寫

rename 'y/a-z/A-Z/' *

結(jié)論

至此您應該很好地理解如何使用mvrename命令重命名文件。 當然,還有其他命令可以在Linux中重命名文件,例如mmv。 對于新Linux用戶可以使用GUI批量重命名工具,例如Métamorphose。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11763

    瀏覽量

    219089
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    594

    瀏覽量

    26068
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    755

    瀏覽量

    23765
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    php中rename()函數(shù)的妙用

    php中rename()函數(shù)的妙用 大家都知道,rename()函數(shù)可以對文件或目錄進行重命名的操作。其實它還可以做很多事情。 熟悉unix的朋友應該知道shell
    發(fā)表于 01-11 09:33

    新手求助,如何按規(guī)定對文件進行重命名?

    比如,一個原始文件夾下有好幾個子文件夾,每個子文件夾下又有很多圖片,現(xiàn)在有一個EXCEL表格,每列代表一個子文件夾中圖片的新名字,要求按EXCEL表格的
    發(fā)表于 10-28 08:53

    保存“設置數(shù)據(jù)(.scp)”我無法重命名文件名。(MSOX-4034A)

    我想通過設置菜單將設置數(shù)據(jù)保存到示波器。但是,我無法從“setup_0”(默認名稱)重命名文件名。如何使用給定的文件名將設置數(shù)據(jù)保存到示波器中?謝謝, 以上來自于谷歌翻譯 以下為原文I want
    發(fā)表于 09-11 16:19

    重命名項目不在4.15上編譯

    項目文件夾”單選按鈕。4。當只更改“項目名稱”時,我可以編譯和運行,但名稱本身在項目窗口中沒有改變,這不是我的目標。5。因此,我標記“重命名項目文件夾”單選按鈕,項目的名稱在項目窗口中確實發(fā)生了變化
    發(fā)表于 09-25 17:36

    CyWDR文件也需要重命名嗎?

    我想克隆一個項目,作為一個非常類似的項目的開始(稍后為相同代碼的新版本)使用。是“將工作區(qū)/項目歸檔”到新文件夾并解壓縮它的推薦方法。然后打開被復制和右擊的項目并“重命名”主項目?關(guān)于“CyWDR
    發(fā)表于 08-15 14:02

    f_rename函數(shù)具體該怎么使用?

    哥最近在搞資源管理器的程序請教原子哥f_rename函數(shù)的用法根據(jù)說明此函數(shù)能重命名,移動文件因此我編寫如下:f_rename("0:/test.txt","0
    發(fā)表于 08-25 21:22

    在庫中查看怎么刪除或重命名函數(shù)?

    >我之前沒有這樣做,也不能>在庫中查看如何刪除或重命名函數(shù)?打開庫(文件 - >打開)并編輯。它不是一個vxe,是嗎?-SHAWN- 以上來自于谷歌翻譯 以下為原文> I
    發(fā)表于 10-28 14:05

    求助,如何重命名(正確的方式)STM32 項目?

    如何重命名(正確的方式)STM32 項目?如果我按 F2 我可以重命名項目的名稱,但項目文件夾仍然具有相同的名稱。如果我更改文件夾的名稱,則會出現(xiàn)錯誤。為什么?有
    發(fā)表于 01-30 06:28

    Pads文件轉(zhuǎn)換Allegro PCB后封裝如何按PAD大小規(guī)則的重命名

    Pads文件轉(zhuǎn)換Allegro PCB后封裝如何按PAD大小規(guī)則的重命名,避免設計出錯?! 》庋bPAD名字規(guī)則重命名  1、導出整板PCB封裝到一個新的lib文件路徑  2、任意打開一
    發(fā)表于 03-31 15:19

    LABVIEW中文件重命名的幾種方法——陳樹學《labview寶典》

    和REN是等同的,屬于內(nèi)部DOS命令。需要注意的是重命名后的文件名不能指定驅(qū)動器和路徑,因為只能在源文件夾中重命名。四、利用API函數(shù)當遇到
    發(fā)表于 01-03 16:35 ?6091次閱讀
    LABVIEW中<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>的幾種方法——陳樹學《labview寶典》

    在Linux上使用簡單的cp和mv命令來復制和重命名文件

    重命名它們,而不必為它們中的每一個使用 mv 命令。 /A-Z/a-z/ 告訴 rename 命令將范圍 A-Z 中的任何字母更改為 a-z
    的頭像 發(fā)表于 06-25 14:02 ?8913次閱讀

    如何使用python給所有文件重命名

    本文檔的主要內(nèi)容詳細介紹的是如何使用python給所有文件重命名資料免費下載。
    發(fā)表于 09-22 17:09 ?2次下載
    如何使用python給所有<b class='flag-5'>文件</b>夾<b class='flag-5'>重命名</b>

    快速實現(xiàn)SOLIDWORKS模型批量重命名

    我們在使用SOLIDWORKS設計產(chǎn)品時,每次調(diào)用SOLIDWORKS Explorer重命名不能批量進行,為了解決廣大工程師的困擾,今天我們來介紹一款可以批量重命名的軟件—SolidKits.BOMs。
    發(fā)表于 01-17 18:10 ?1881次閱讀
    快速實現(xiàn)SOLIDWORKS模型批量<b class='flag-5'>重命名</b>

    Linux rename命令重命名多個文件與目錄

    使用`mv`命令重命名多個文件和目錄可能是一個乏味的過程,因為它涉及使用管道,循環(huán)等編寫復雜的命令。
    的頭像 發(fā)表于 12-09 17:41 ?4057次閱讀

    討論Linux mv命令的一些實際示例

    mv 命令的最基本用途是重命名文件。那么讓我們看看如何重命名當前目錄中的文件。
    的頭像 發(fā)表于 02-14 16:28 ?1445次閱讀