linux下批量修改檔名之rename
阿新 • • 發佈:2018-12-14
目錄:
rename命令的幫助手冊
$ man rename
RENAME(1) Perl Programmers Reference Guide RENAME(1)
NAME
rename - renames multiple files
SYNOPSIS
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
DESCRIPTION
"rename" renames the filenames supplied according to the rule specified
as the first argument. The perlexpr argument is a Perl expression
which is expected to modify the $_ string in Perl for at least some of
the filenames specified. If a given filename is not modified by the
expression, it will not be renamed. If no filenames are given on the
command line, filenames will be read via standard input.
For example, to rename all files matching "*.bak" to strip the
extension, you might say
rename 's/\.bak$//' *.bak
To translate uppercase names to lower, you'd use
rename 'y/A-Z/a-z/' *
OPTIONS
-v, --verbose
Verbose: print names of files successfully renamed.
-n, --no-act
No Action: show what files would have been renamed.
-f, --force
Force: overwrite existing files.
ENVIRONMENT
No environment variables are used.
AUTHOR
Larry Wall
SEE ALSO
mv(1), perl(1)
DIAGNOSTICS
If you give an invalid Perl expression you' ll get a syntax error.
BUGS
The original "rename" did not check for the existence of target
filenames, so had to be used with care. I hope I've fixed that (Robin
Barker).
perl v5.18.2 2014-01-14 RENAME(1)
比如將資料夾下的gif檔案都重新命名為jpg檔案
- 先看下當前資料夾下的gif檔案
$ ls
0_1319882778q11s.gif 0_1319883321nhuy.gif 0_1319883862IEGl.gif
- 使用
-v -n
確認我正則
是否正確
$ rename -v -n 's/\.gif$/\.jpg/' *.gif
0_1319882778q11s.gif renamed as 0_1319882778q11s.jpg
0_1319883321nhuy.gif renamed as 0_1319883321nhuy.jpg
0_1319883862IEGl.gif renamed as 0_1319883862IEGl.jpg
可以看到檔案還未命名
$ ls
0_1319882778q11s.gif 0_1319883321nhuy.gif 0_1319883862IEGl.gif
- 無誤後執行命令即可
rename 's/\.gif$/\.jpg/' *.gif
命名成功
$ ls
0_1319882778q11s.jpg 0_1319883321nhuy.jpg 0_1319883862IEGl.jpg