2014-01-26 5 views
1

나는 똑같이 보이지만 완전히 다른 4 개의 파일을 가지고 있습니다.다른 파일 이름으로 파일 이동하기

> _palus_SLA_response_pages_main_2c3cd_2_18.tokudb 
> _palus_SLA_response_pages_status_2c3cd_1_18.tokudb 
> _palus_SLA_response_pages_main_51fdda_2_18.tokudb 
> _palus_SLA_response_pages_status_51fdda_1_18.tokudb 

나는 다른 하나는 "2c3cd"와 코드 "51fdda"를 가진 모든 파일을 교체해야합니다. 그래서 새로운 코드는 기존 코드를 사용하여 파일을 덮어 쓸 가능성 만이 파일이 남아있을 것입니다 : 나는 한 번에 이런 일을 각 파일을 이동할 수 있습니다

_palus_SLA_response_pages_main_2c3cd_2_18.tokudb 
_palus_SLA_response_pages_status_2c3cd_1_18.tokudb 

...

mv "_palus_SLA_response_pages_main_51fdda_2_18.tokudb" "_palus_SLA_response_pages_main_2c3cd_2_18.tokudb" 
mv "_palus_SLA_response_pages_status_51fdda_1_18.tokudb" "_palus_SLA_response_pages_status_2c3cd_1_18.tokudb" 

하지만 한 번에 수동으로 너무 많은 파일을 이동해야합니다. 이 작업을 수행 할 스크립트가 필요합니다. 당신이 rename 명령을 사용할 수있는 경우

답변

2

, 당신은 사용할 수 있습니다 :

rename 51fdda 2c3cd *tokudb 

당신은 이름 바꾸기 명령을 사용할 수없는 경우, 간단한 루프이 작업을 수행 할 수 있습니다

for file in *51fdda*.tokudb; do 
    mv ${file} ${file/51fdda/2c3cd} 
done 

이 두 번째 해결 방법에 대한 자세한 내용은 bash(1) 매뉴얼 페이지의 "브레이스 확장"절을 참조하십시오.

관련 문제