강좌 & 팁
Linux 에서 파일의 이름을 변경하기 위해서는 mv 명령어를 사용합니다만,
여러 개 파일의 이름을 한번에 변경하기 위해서는 rename 명령어를 사용하는 것이 더 편합니다.
rename 은 perl 스크립트로 작성된 명령어입니다. perl 이 설치되어 있지 않다면 실행할 수 없습니다.
Man 페이지의 내용은 다음과 같습니다.
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. |
정규표현식을 이용해야 한다는 점이 마음에 걸리지만 간단한 정도로 사용하면 유용하게 쓸 수 있습니다.
# ls
readme_1.txt readme_10.txt readme_2.txt readme_3.txt readme_99.txt
#
# rename 's/readme_/readme_0/' readme_?.txt
# ls
readme_01.txt readme_02.txt readme_03.txt readme_10.txt readme_99.txt
#
# rename 's/txt/html/' ./*
# ls
readme_01.html readme_02.html readme_03.html readme_10.html readme_99.html
#