1. 程式人生 > >linux下rename命令的用法——適合大批量修改檔名

linux下rename命令的用法——適合大批量修改檔名

linuxrename命令的用法——適合大批量修改檔名

在看鳥哥私房菜的時候,遇到了mv這個可以修改檔名的命令。後面還有一個命令,叫rename。鳥哥讓自己man幫助查詢。結果自己一看,發現這個命令居然可以批量的修改檔名。首先,看下man幫助裡面的說明:
 For example, given the files
             foo1, ..., foo9, foo10, ..., foo278,  thecommands

             rename foo foo0 foo?
             rename foo foo0 foo??

      will turn them into foo001, ..., foo009, foo010, ..., foo278.

      And
             rename .htm .html *.htm

      will fix the extension of your html files.



man幫助裡給我們舉了兩個例子,什麼意思呢,就是利用renamefoo foo0 foo? 類似這種命令,可以批量修改foo1foo2foo3這種有規律的檔名。rename的一共有三個引數,第一個引數是要修改的部分,第二個引數是修改成什麼的部分,第三個是修改哪些檔案。還是要做實驗,說的比較繞。我們先在目錄下建六個檔案好了,分別是foo1foo2, foo11foo22foo111foo222

[[email protected]]# ls
foo1 foo11 foo111 foo2 foo22 foo222


現在我什麼目的呢,就是要把foo後面不夠三位的,前面用0代替,比如foo1

修改成為foo001foo22修改成為foo022foo111foo222不變。

那我們該怎麼做呢,首先,我用這個命令:rename foo foo0 foo?

?是萬用字元,代表一個字元,也就是我會把名字為foo?這些檔案的foo部分修改成為foo0。大家想想會有什麼變化。

[[email protected]]# rename foo foo0 foo?

[[email protected]]# ls

foo01 foo02 foo11 foo111 foo22 foo222

看到了嗎,foo?就代表四個字元,並且含有foo的檔案。我們用命令把foo修改成為了foo0,所以才會有這樣的效果。接下來我們再使用這個命令:rename foo foo0 foo??

[[email protected]]# rename foo foo0 foo??

[[email protected]]# ls

foo001 foo002 foo011 foo022 foo111 foo222

看到了吧,foo??這種五個字元的都會被修改。看到這裡大家就會發現,rename這個命令,一是掌握結構,而是學會用萬用字元。

下面,我們換幾個萬用字元試驗。*代表任意字元

[[email protected]]# ls

foo001 foo002 foo011 foo022 foo111 foo222

[[email protected]]# rename foo ofo *

[[email protected]]# ls

ofo001 ofo002 ofo011 ofo022 ofo111 ofo222

[[email protected]]# rename ofo ccc ofo*1

[[email protected]]# ls

ccc001 ccc011 ccc111 ofo002 ofo022 ofo222

[[email protected]]# rename 1 c ccc*

[[email protected]]# ls

ccc00c ccc0c1 cccc11 ofo002 ofo022 ofo222 //大家注意到,是從第一個出現1的時候更換的

比如我們還可以修改結尾檔名相似的。

[[email protected]]# ls

1.htm 2.htm 3.htm 4.htm 5.mmm

[[email protected]]# rename .htm .html *.htm

[[email protected]]# ls

1.html 2.html 3.html 4.html 5.mmm

[[email protected]]# rename .html @html *.html

[[email protected]]# ls

[email protected] [email protected] [email protected] [email protected] 5.mmm

怎麼樣,是不是這個命令挺強大的。不過,大批量的建立和修改檔案還是用指令碼比較快速和靈活。


相關推薦

linuxrename命令用法——適合批量修改檔名

linux下rename命令的用法——適合大批量修改檔名 在看鳥哥私房菜的時候,遇到了mv這個可以修改檔名的命令。後面還有一個命令,叫rename。鳥哥讓自己man幫助查詢。結果自己一看,發現這個命令居然可以批量的修改檔名。首先,看下man幫助裡面的說明: For example, given the fi

Linuxshell命令用法和例項總結:du

完整的Linux下Shell命令總結歸檔於IT老兵部落格。 命令格式 du [選項] [檔案] 命令功能 du(disk usage 的簡稱)命令用於檢查計算機上檔案和目錄的磁碟使用情況,可以遞迴顯示檔案和目錄。顯示每個檔案和目錄的磁碟使用空間。 命令引數

Linuxcut命令用法詳解

  Linux下cut命令用法詳解                                                            原創:frozen_sucker(冰棍) 有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭

Linuxhistory命令用法

如果你經常使用 Linux 命令列,那麼使用># export HISTTIMEFORMAT='%F %T ' #># [Press Ctrl+R from the command prompt, which will display the reverse-i

C語言再學習 -- Linuxfind命令用法

linux下查詢檔案的命令有兩個:locate 和 find 首先說一下locate: 這個命名是對其生成的資料庫進行遍歷(生成資料庫的命令:uodatedb),這一特性決定了用locate查詢檔案速度很快,但是locate命令只能對檔案進行模糊匹配,在精度上來說差了點,

Linuxrsync命令用法

目錄概述:     rsync工具簡介     1. rsync用法     2. rsync 引數說明     3. rsync的配置     3.1 2臺主機建立ssh信任     3.2 伺服

Linuxdiff命令用法詳解

大家好,我是良許。 我們在平時工作的時候,經常要知道兩個檔案之間,以及同個檔案不同版本之間有何異同點。在 Windows 下,有 beyond compare 這個好用的工具,而在 Linux 下,也有很多很強大的工具,良許之前也寫過一篇文章介紹: [Linux下9種優秀的程式碼比對工具推薦](https

linuxrename用法--批量重新命名 轉

原文地址:https://www.cnblogs.com/hester/p/5615871.html Linux的rename 命令有兩個版本,一個是C語言版本的,一個是Perl語言版本的,早期的Linux發行版基本上使用的是C語言版本的,現在已經很難見到C語言版本的了, 由於歷史原因,在Perl語言大紅大

linuxexpect命令實現批量ssh免密

輸入 left 防止 輸出 one 時間 line jdb eof 有時候我們需要批量發送ssh命令給服務器,但是有可能有些服務器是新加入的,還沒有配置ssh免密,這個時候就會提示我們輸入yes/no 或者password等,expect腳本命令就是用於在提示這些的時候

Linux rename命令批量修改檔名

一般都是用mv,但是mv只能修改一個檔名,批量修改的話還得寫指令碼來實現 rename命令就可以了,可以使用萬用字元 [[email protected] test]# touch a.test.com b.test.com c.test.com [[email 

Linux ls 命令的高階用法8例

在Linux下,ls這個命令大家肯定太熟悉了,良許相信只要是Linux工程師,每天都會離不開這個命令,而且一天會使用個幾百次。但是,除了 ls -l 以外,你還知 ls 的哪些高階用法呢?良許今天為大家介紹 ls 命令的8種高階用法。 假如我們有這樣的一個資料夾,我們用tree命令檢視它的目錄結構:

linux批量修改檔名rename

目錄: rename命令的幫助手冊 比如將資料夾下的gif檔案都重新命名為jpg檔案 rename命令的幫助手冊 $ man rename RENAME(1) Perl Programmers R

8 個 Linux ls 命令的高階用法!個個驚豔!

作者 | 良許 責編 | 胡巍巍 在Linux下,ls這個命令大家肯定太熟悉了,筆者相信只要是Linux工程師,每天都會離不開這個命令,而且一天會使用個幾百次。 但是,除了ls -l以外,你還知ls的哪些高階用法呢?筆者今天為大家介紹ls命令的8種高階用法。

linux常用命令與常用操作用法及解釋(初學者必備)

1、環境變數      (1)列印環境變數:ehco  $PATH      (2)新增到環境變數(一般放在當前使用者的宿主目錄~/下的.bashrc檔案裡):export PATH=/usr/local/bin:$PATH                 解釋:每一次

linuxps命令 和 grep命令用法

inux上程序有5種狀態: 1. 執行(正在執行或在執行佇列中等待) 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號) 3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷髮生) 4. 僵死(程序已終止, 但程序描述符存在, 直到父程序

Linuxgdb除錯用法命令

一直在Fedora平臺下寫opencv的程式,需要對程式進行除錯,主要用的除錯工具是gdb. gdb提供瞭如下功能: 1.在程式中設定斷點,Debug時遇到斷點處暫停 2.可以監視某個變數,並利用print函式將該變數的值打印出來 3.程式可step-by-

linux命令批量修改替換檔案內容

在linux入侵之後,我們要清除留下的一些痕跡,比如apache留下的日誌.但是對於ssh登陸日誌比如/var/log/wtmp 和 lastlog這類二進位制檔案,sed命令就愛莫能助了. Linux下批量替換多個檔案中的字串的簡單方法。用sed命令可以批量替換多個檔案

Linux批量修改檔名(rename)

1.rename命令批量修改檔名, 其實linux下可以使用別的辦法來批量修改檔名, 不過rename實在太方便了 比如把所有的表為cdb1_* 修改為cdb_*的 在本目錄下 只需要# rename 'cdb1' 'cdb' * 以前都是寫個for迴圈來做...想想多傻啊, 呵呵 rename還有更多

mac linux rename命令批量修改檔名

我的mac使用命令列批量修改名字時發現居然沒有rename的指令: zsh: command not found: rename 所以使用HomeBrew先安裝一下: ➜ ~ brew install rename 完後可以直接使用簡單的一行命

Linux常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------