2011-08-31 8 views
0

누군가가 파이프와 리디렉션을 사용하지 않고 test.c 형식의 디렉토리 아래에있는 모든 파일의 이름을 바꿀 수있는 하나의 명령을 내게 말할 수 있습니까? 뭐가 잘못하나의 라이너 셸 스크립트

for i in *.c;
do
mv $i ${i%c}cc
done

+1

'for i in * .c; mv $ i $ {i % c} cc 할; 다 됐어? – jweyrich

답변

5
find dirname -iname "*.c" -exec mv "{}" "{}"c \; 
+0

위의 스크립트를 사용하여 * .cc 파일을 다시 * .c 파일로 변환하는 방법을 알려 주실 수 있습니까? – pradeepchhetri

+0

간결하게, 당신은 할 수 없습니다. 그러나 (시스템에'rename '이 있다면)'ren .cc .c * .cc' 대안은 쉽습니다. –

+0

다음과 같이 할 수 있습니다 :'find x -iname "* .cc"-exec mv "{}"\'basename "{}"\'.c \;'그러나 이름 바꾸기 솔루션은 * MUCH * 이상입니다. –

3

:

나는 같은 일을 루프를 포함하고 수행하는 쉘 스크립트를 작성했습니다

for i in *.c; do mv $i ${i%c}cc; done 

를이 하나이다.

rename .c .cc *.c 
0

mmv 트릭을 수행해야합니다 - 라인조차 매우 긴 하나 ...

는 다른 방법으로, 리눅스에, rename 명령이 있습니다.

0

당신은 rename 명령이있는 경우 : 그 사람 페이지에서

rename .c .cc *.c 

을 :

이름 바꾸기 명령은 폴더의 유틸리티 - 리눅스 - NG 패키지의 일부이며 ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/

에서 사용할 수 입니다
관련 문제