2011-08-31 65 views
0

有人可以告诉我一个命令,它可以将目录下的所有文件重命名为test.c到test.cc,而无需使用管道和重定向。单线程shell脚本

我写了一个shell脚本,其中包含一个循环,并做了同样的工作:

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

简洁地说,您不能。不过,重命名.cc .c * .cc替代方法很简单(如果您在系统上有'rename')。 –

+0

你可以这样做:'找到x -iname“* .cc”-exec mv“{}”\'basename“{}”\'.c \;'但重命名解决方案*更好。 –

3

出了什么问题:

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

它是一个行 - 甚至不是一个很长的一个...

另外,在Linux上,有一个rename命令:

rename .c .cc *.c