mp3등의 파일에 붙은 space를 "_" 등으로 대체하면 편리하겠군요..
첨부파일은 스크립트입니다.
아래는 홈페이지의 설명입니다.
이외에도 유용한 스크립트와 강좌가 있으니 꼭 한번 방문해보세요
출처 : http://www.linuxchannel.net/
#########################################
##
## 스크립트명 : renameto(특정 파일/디렉토리를 바꾸기)
##
## 작성자 : 김칠봉 < san2[at]linuxchannel.net >
## 작성일 : 2002.03.04
## 2002.03.27 add options
## 2002.03.29 patch(thanks '단n키')
## 2002.04.13 patch(sort)
##
## 라이센스 : GNU GPL
## 다운로드 : http://www.linuxchannel.net/devel/renameto/
##
##
##########################################
##########################################
## ##
## WARNING !!! ##
## 사용자의 사용상 부주의로 인한 피해는 ##
## 어떠한 경우라고 본인에게 그 책임이 ##
## 없음을 미리 공지합니다. ##
## ##
##########################################
[기능]
- 특정 문자열의 파일을 찾아서 바꿈
- 특정 문자열의 디렉토리를 찾아서 바꿈
- 바꾸기 전에 view 기능 제공
- 특정 디렉토리에서 검색가능
- 현재디렉토리, 모든 서브디렉토리, 특정 깊이의 디렉토리 검색
[사용법]
# renameto --help
usage : renameto [options] "/from_string/to_string/" "<target_files|target_directory>"
options
-R : include all sub directory (not default)
-Rn : 'n' is sub directory maxdepth number
'-R0' is current directory (same as not given options)
-t,-test,--test : only test view
-v,-view,--view : only test view
-d,-dir,--dir : only directory adjust (not files)
-h,-help,--help : help
example
renameto /html/php/ "*.html" (same as rename command)
renameto -R "/ /_/" "* *.mp3" (replace file " " to "_" all sub-directory)
renameto -R -test "/ /_/" "* *.mp3" (test view)
renameto -R -dir "/ /_/" "/home/xxx/mp3/* *" (replace directory)
source download http://ftp.linuxchannel.net/devel/renameto/
#
-R
하위의 모든 디렉토리에서 검색
-R0
현재 디렉토리에서만 검색
-Rn
현재디렉토리에서 그다음 n단계 디렉토리까지만 검색, n은 ([0-9]*)
-R
옵션이 없다면 현재디렉토리에서 만 검색
-d, -dir, --d, --dir
파일대신 디렉토리에 적용
이 옵션이 없다면 기본적으로 파일을 그 대상으로 함
-v, -view, --view, -t, -test, --test
파일이나 디렉토리를 바꾸지 않고 그냥 찾아서 출력만 함(확인할때)
이 옵션이 없다면 매치되는 파일이나 디렉토리를 찾아서 바꿈.
'/from_string/to_string/'
from_string -> to_string 으로 교체
공백 문자열이 들어갈 수 있으므로 받드시 전체를 ' 나 "로 묶어줌
양자의 구분자는 / 로 구분
'찾을 디렉토리나 파일 대상'
받드시 전체를 ' 나 "로 묶어줌
"* *" : 공백 문자열이 들어간 모든 파일이나 디렉토리 대상
"*" : 모든 파일이나 디렉토리 대상
"*.mp3" : 확장자(?)가 mp3인 모든 파일
"*.[hH][tT][mM][lL]" : *.html *.HTML *.Html ... 등과 매치
"/home/*.php" : /home 디렉토리를 대상으로 *.php 파일
"home/*.php" : 현재 디렉토리에서 상대 경로가 home 인 디렉토리
[사용예 1]
/sdb1/mp3 디렉토리 및 그 하위 모든 디렉토리에서
mp3 파일이나 MP3 파일을 대상으로
파일이름에 공백(" ")이 들어갈 경우 "_" 로 바꿈
먼저 테스트해 봄
$ renameto -R --test '/ /_/' '/sdb1/mp3/* *.[mM][pP]3'
...
...
$
리스트가 나오면 --test 옵션을 빼고 실행함
$ renameto -R '/ /_/' '/sdb1/mp3/* *.[mM][pP]3'
...
...
$
-R
대상디렉토리(/sdb1/mp3) 및 그 하위의 모든 디렉토리 포함
--test
단지 테스트만 해봄
'/ /_/'
공백을 "_"으로 바꾸기
'/sdb1/mp3/* *.[mM][pP]3'
/sdb1/mp3/ 는 찾을 디렉토리의 시스템 절대경로
* *.[mM][pP]3 은 공백 문자열이 들어간 파일의 표현식
[사용예 2]
공백문자 없애기
$ renameto '/[ ]//' '*.mp3'
또는
$ renameto '/ //' '*.mp3'
특수문자들 " [ ] ( ) * 없애기
$ renameto '/["[]()]//' '*.mp3'
확장자 바꾸기
$ renameto '/.MP3$/.mp3/' '*.MP3'
파일이름 앞에 'My' 문자열 추가하기
$ renameto '/^/My/' '*.mp3'
----------------------------------------
관련 링크: http://www.linuxchannel.net/
'ETC' 카테고리의 다른 글
리눅스 iptables 기반 NAT에서 msn파일 전송 사용하기 (1) | 2002.08.09 |
---|---|
MRTG 5월 버그(?) (0) | 2002.05.08 |
하위 디렉토리까지 뒤져 특정파일의 내용을 replace하기 (0) | 2002.01.27 |
고급 Bash 스크립팅 가이드 (0) | 2002.01.27 |
MC(midnight commander) FAQ (0) | 2001.12.26 |