rename 简单使用

2931阅读 0评论2011-03-08 zzy7186
分类:LINUX

以前改文件名都用mv,今天man 了下rename

rename  will  rename  the specified files by replacing the first occur-
      rence of from in their name by to.

      For example, given the files foo1, ..., foo9, foo10, ...,  foo278,  the
      commands

             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.

mv 命令不能批量修改文件名但是mv也有rename没有的功能

rename 可以用来批量修改文件名

例如

[root@Server1 shelllearn]#ll
总计 8
-rwxr--r-- 1 root root 121 03-08 23:14 a
-rwxr--r-- 1 root root  66 03-08 23:19 b
-rw-r--r-- 1 root root   0 03-08 23:22 test2.html
-rw-r--r-- 1 root root   0 03-08 23:22 test3.html
-rw-r--r-- 1 root root   0 03-08 23:05 test file1
-rw-r--r-- 1 root root   0 03-08 23:04 test file2
-rw-r--r-- 1 root root   0 03-08 23:04 test file3
-rw-r--r-- 1 root root   0 03-08 23:04 test file4
-rw-r--r-- 1 root root   0 03-08 23:04 test file5
-rw-r--r-- 1 root root   0 03-08 23:22 test.html

在这我想将文件名中有空格的文件名中的空格改成“—”

可以用命令rename实现

rename “ ” “_" *

比下面的简单多了

#!/bin/bash
find . -name "*_*" -print |
while read name
do
        ch_na=$(echo $name | tr '_' ' ')
        mv "$name" "$ch_na"
done

然后我们把以.html结尾改成.htm结尾

rename .html .htm *

[root@Server1 shelllearn]#rename " " "_" *
[root@Server1 shelllearn]#rename .html .htm *
[root@Server1 shelllearn]#ls
a  test2.htm  test_file1  test_file3  test_file5
b  test3.htm  test_file2  test_file4  test.htm

嘿嘿 rename就这样简单记录下吧

上一篇:linux下如何升级系统默认安装的perl版本
下一篇:cat 和 nl