全部博文(61)
分类: LINUX
2011-03-08 23:45:55
以前改文件名都用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就这样简单记录下吧