Linux: mv, rename單次及批次修改檔案名稱及字尾(批量修改檔名)
在Windows 系統中,無論我們要重新命名資料夾或是檔案,
通常都點下右鍵後選擇重新命名即可,
如果對快捷鍵比較熟,直接按下F2 可以更快地達成目的。
而在Linux系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是mv ! mv 是move 的縮寫,他除了移動檔案資料夾的功能外也可以同時重新命名。
所以其實仔細想想拿他來重新命名檔案也不會很難理解啦,
重新命名時只是把檔案移動到同一個資料夾,然後趁著移動時把檔名給順便改了!
說了這麼多那mv 指令到底該怎麼使用呢?
- # mv $1 $2
- # $1: 舊檔案或資料夾名稱
-
# $2: 新的檔案或資料夾名稱
- mv oldname.txt newname.txt
上面的方法是用來重新命名單一檔案或資料夾,
但是當一個目錄資料夾底下有很多有特定規則檔名的檔案需要改名,
例如相機產生的檔案IMG001.jpg~IMG999.jpg 超多檔案,
這絕對不可能直接用mv 一個個慢慢敲來改名的。
這時候另一個指令就可以派上用場了,
rename 這個指令可以用來批次修改檔名共同的部分,使用方式如下:
- # rename $1 $2 $3
- # $1: 要被取代的關鍵字
- # $2: 新的關鍵字
- # $3: 檔名符合這個規則的才取代
-
# 把IMG001.jpg, IMG002.jpg… 換成img001.jpg, img002.jpg…
- rename IMG img IMG*
- # 把所有.htm 檔案改成.html
- rename .htm .html *.htm
- # 把檔案foo1, ..., foo9, foo10, ..., foo278.
- # 改成foo001, ..., foo009, foo010, ..., foo278.
- rename foo foo0 foo?
- rename foo foo0 foo??
來源:http://werdna1222coldcodes.blogspot.com/2012/04/linux-scriptmv-rename.html
rename
相關命令:mvrename 用於 對檔案進行命名管理,可進行批量命名並支援正則表示式, rename命令存在兩個版本用法上有所區別 一個是 C語言版本支援萬用字元, 另一個是 Perl版本.支援正則表示式 引數 -n 操作預覽,在不更改檔名稱情況下,顯示執行後的結果 -f 強制執行 【常用萬用字元說明】 ? 表示一個任意字元 * 表示一個或一串任意字元 ------------------------------------------------- 【常用正則表示式符號說明】 ^ 匹配輸入的開始位置 $ 匹配輸入的結尾 . 匹配除換行符外的任意字元 + 匹配前一個字元一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z" [a-z] 表示某個範圍內的字元,例如,"[a-z]"匹配"a"與"z"之間的任何一個小寫字母字元。 [^m-z] 否定的字元區間。與不在指定區間內的字元匹配。
- [root@localhost www]# rename 's/\.sh/\.php/' * #將當前目錄下.sh字尾的檔案,變成.php
- [root@localhost www]# rename 's/$/\.bak/' /home/www/*.php #給www目錄下的.php加上bak字尾
- [root@localhost www]# rename 's/^/bak_/' *.bin #給當前目錄下的.bin字尾檔案加上bak_字首
- [root@localhost www]# rename 's/\.bin$//' * #批量刪除當前目錄下所有檔案的.bin 字尾
- [root@localhost www]# rename 's/A-Z/a-z/' * #修改當前目錄所有檔名為小寫
其他方法:
C程式碼- for i in `ls`; do mv -f $i `echo $i | sed 's/oldstring/newstring/'`; done
或者
Java程式碼- #使用perl語言
- find ./ -name '*.sh' | xargs perl -pi -e 's|string1|string2|g'
- #使用sed程式
- find ./ -name '*.sh' | xargs sed -i 's/string1|string2/g'
上面的'*.sh'替換成需要修改的檔名,string1是需要修改的字串,string2是修改後的字串。
相關推薦
Linux: mv, rename單次及批次修改檔案名稱及字尾(批量修改檔名)
在Windows 系統中,無論我們要重新命名資料夾或是檔案, 通常都點下右鍵後選擇重新命名即可, 如果對快捷鍵比較熟,直接按下F2 可以更快地達成目的。 而在Linux系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是mv ! mv 是move 的縮寫,
linux 批量替換檔案內容及查詢某目錄下所有包含某字串的檔案(批量修改檔案內容)
sed replace word / string syntax The syntax is as follows: C程式碼 sed -i 's/old-word/new-word/g' *.txt GNU sed command can edit files in place (
Linux修改檔案屬性及許可權
修改檔案使用者組: (組名必須在/etc/group檔案中) chgrp [-R] grpname filename|dirname -R:將目錄內檔案的所屬組都改為指定組名 eg: 修
Linux /etc/profile檔案詳解及修改後如何立即生效(使用source命令)
Linux /etc/profile檔案的改變會涉及到系統的環境,也就是有關Linux環境變數的東西,學習Linux要了解Linux profile檔案的相關原理,這裡對則以檔案進行具體分析。這裡修改會對所有使用者起作用。 1、Linux是一個多使用者的作業系統。每個使用者
ionic 修改應用名稱 及 修改百度離線地圖 點聚合 圖標
離線 百度離線地圖 分享 應用名稱 技術分享 修改 com http ges 1.ionic 修改應用名稱 2.修改百度離線地圖 點聚合 圖標 ionic 修改應用名稱 及 修改百度離線地圖 點聚合 圖標
linux操作遠端檔案拷貝、遠端免密登陸、修改虛擬機器主機名(課堂學習筆記)
總體目錄 一、檔案拷貝 二、遠端檔案拷貝 三、遠端登入 四、實現SSH遠端免密登入 五、嘗試遠端無密拷貝單個檔案 六、免密拷貝目錄裡的多個檔案 七、修改主機名 一、檔案拷貝 在192.168.225.100虛擬機器上,在home目錄裡建立
shell命令以及執行原理、檢視或修改掩碼(umask)、Linux許可權管理、Linux設定檔案訪問許可權(chmod)、粘滯位、修改檔案的擁有者(chown)、修改檔案的所屬組(chgrp)
shell命令以及執行原理: Linux嚴格意義上說的是一個作業系統,我們稱之為”核心”,但是我們普通使用者,不能直接使用核心,而是通過核心的”外殼”程式,也就是所謂的shell,來與核心溝通。 Linux中的命令大多數都是可執行程式。但其實捕捉我們
Linux chmod命令 修改檔案許可權被禁止(not permitted)的解決辦法
發現目錄下有個.user.ini檔案無法刪除一直提示這個錯誤, 終於查到用 chattr 可以解除這個限制 首先先檢視一下屬性 lsattr .user.ini ----i------e- .user.i
python基礎五:元組的index,del,count方法及字典的修改、增加、刪除(del、clear)、遍歷(keys、values、items)
元組:index、del、count的方法。index的用法:用來查詢元組中元素對應的下標。格式:元組變數名.index(查詢的元素)例項: del的用法:用來刪除整個元組。格式:del 元組變數名例項: count的用法:用來統計元組中指定元素的
Linux上安裝Apache環境及安裝過程報錯解決方案(零初始環境)
Note:要從零開始搭建,就不要嫌中間遇到各種eggache的問題! 一.下載apache原始碼 得到檔案 httpd-2.4.3.tar.gz 2. 上傳到你的伺服器目錄,如:/home/tnuser/installers 解壓:tar -zxv
spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊
spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊 本文主要內容: 1:管理頁面主機名及訪問ip資訊提示修改 2:獲取當前註冊中心的服務列表及每個服務對於的服務提供者列表 本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第八篇:《修改服務
循環控制及狀態返回值的應用實踐(分析apache日誌)
循環語句 ns3 總結 字段 順序 awk 字節數 shell 訪問日誌 12.1 break,continue,exit,return的區別和對比break和continue在條件語句以及循環語句(for,while,if等)中用於控制程序的走向;exit用戶終止所有語句
Linux九陰真經之九陰白骨爪殘卷1(加密和安全)
con touch 接收 sock 就是 any bss pan 字節數 CA和證書 1、KPI :公共秘鑰體系 簽證機構:CA 註冊機構:RA 證書吊銷列表:CRL 證書存取庫 509
VMware虛擬機克隆Linux(CentOS)系統後找不到eth0網卡的問題(圖文詳解)
sunny 電腦 安裝 bubuko 幹貨 IV onf 虛擬機克隆 技巧 問題現象: 有時候,會使用VMware虛擬機的的克隆功能,快速的復制已安裝好的Linux系統。 可是克隆完之後,會發現沒有eth0網卡。
Spring之強制修改某個方法的行為(Arbitrary method replacement)
save ons obj tco cif until init this replacer A less commonly useful form of method injection than Lookup Method Injection is t
PS中如何提高修改psd圖片的效率(自動選擇工具)
缺點 分享圖片 效率 遮蓋 去掉 自己的 備份 利用 inf 在photoshop中制作圖片的時候,一般要養成保留psd格式的習慣,縱然普通時候jpg,png格式常用,考慮到以後可能需要修改,也應該備份一下。如果考慮到以後需要修改,可每次成品保存成兩個,一個psd格式,一個
關於JBoss7.X修改post傳輸資料量(max-post-size)的問題
轉自: https://blog.csdn.net/zhangyunhao108/article/details/53140569 JBoss7.X修改max-post-size在網上百度了好久,都不是7.x修改的方式,自己用半吊子的英文水平在官網上找了找,有自己試了試,終
Oracle -- 記一次ADG庫遷移過程小結 -- 上篇(ADG建庫)
背景: 客戶新採購一批機器,需要把原ADG庫資料移到新機器上,作業系統不變,資料庫版本不變。 遠端安裝,採用xmanager軟體連線搭建。 環境: 作業系統:Oracle Linux Server release 6.8 oracle資料庫版本:11g r
linux運維工程師面試常見問題整理8--預設埠篇(持續更新ing)
歡迎喜歡實施運維及資料的小夥伴加入群進行談論! 運維技術群:263859509 1.中介軟體類 中介軟體名稱 預設埠 tomcat 8080 wildfly
模板容器類及迭代器的實現二(基於連結串列)
節點類標頭檔案node.h: #ifndef MAIN_WTF_NODE1_H #define MAIN_WTF_NODE1_H #include <cstdlib> namespace main_wtf_6B {template<class Item>class