三種快速搞定Linux文件批量重命名的方法

在日常工作中,我們經常需要對一批文件進行重命名操作,例如將所有的jpg文件改成bnp,將名字中的1改成one,等等。


三種快速搞定Linux文件批量重命名的方法


處理大量文件的時候該如何進行批量修改呢?在 Linux 環境下,我們可以簡單敲一些代碼就可以完成這個需求。比如以下三種方法:


方法一:mv配合for循環方式進行修改


mv命令既可以重命名,又可以移動文件或文件夾。但是實際應用中,它只能對單個文件重命名。


例如:


mv A B #將目錄A重命名為B


mv /a /b/c #將/a目錄移動到/b下,並重命名為c


mv配合for循環方式進行批量修改:


三種快速搞定Linux文件批量重命名的方法


方法二:sed命令


Linux sed命令是利用script來處理文本文件。sed可依照script的指令,來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程序等。


使用sed命令批量替換文件內容時,格式如下:


三種快速搞定Linux文件批量重命名的方法


例如:

把/test下所有包含abc的文件中的abc替換為def,執行命令


三種快速搞定Linux文件批量重命名的方法


sed的其他用法還有很多,我們就不一一介紹了。


方法三:rename命令


當你想要重命名多個文件的時候,rename 工具或許是最簡單、最安全和最強大的命令行工具。


代碼如下:


三種快速搞定Linux文件批量重命名的方法


● 是Perl兼容正則表達式,它表示的是要重命名的文件和該怎麼做。正則表達式的形式是‘s/old-name/new-name/’。

●‘-v’選項會顯示文件名改變的細節(比如:XXX重命名成YYY)。

●‘-n’選項告訴rename命令在不實際改變名稱的情況下顯示文件將會重命名的情況。這個選項在你想要在不改變文件名的情況下模擬改變文件名的情況下很有用。

●‘-f’選項強制覆蓋存在的文件。


例如:


字母的替換

rename "s/AA/aa/" #把文件名中的AA替換成aa

修改文件的後綴

rename "s/.html/.php/" #把.html 後綴的改成 .php後綴

批量添加文件後綴

rename "s/$/.txt/" #把所有的文件名都以txt結尾

批量刪除文件名

rename "s/.txt//" #把所有以.txt結尾的文件名的.txt刪掉


以上,就是我們教給大家的三種在Linux下文件批量重命名的方法,你學會了嗎?


分享到:


相關文章: