ls a*.cpp | awk '{n=$0sub(/^a/,"b")sub(/\.cpp$/,".c")system("mv "n" "$0)}'
#ls命令查看所有a开头的.cpp文件,然后|(管道符)传递到awk命令处理,用sub实现第一个位置的替换^a以a开头的替换成b开头。 3、用for循环字符串截取方法for filename in a*.cpp
do
len=${#filename}
newName="b"${filename:1:len-3}
mv $filename $newName
done 4、用sed的正则表达式替换for filename in a*.cpp
do
newName=`echo $filename|sed -r 's/^a(.*\.c)pp$/b\1/'`
#匹配以a开头以.c结尾的文件,然后替换成b
mv $filename $newName
donelinux下重命名文件或文件夹使用mv既可实现。
例子:
①将一个名为abc.txt的文件重命名为1234.txt
[root@station90
root]#mv
abc.txt
1234.txt
②将目录A重命名为B
[root@station90
root]#mv
A
B
③将a.txt移动到/b下,并重命名为c.txt
[root@station90
root]#mv
a.txt
/b/c.txt
关注《linux就该这么学》,小白轻松变大牛。告诉lz一个思路,不用脚步只要用一个命令就能实现,可以用find这个命令,先将.a的文件找出来,然后用mv这个命令改,可惜find这个命令连用(不是管道)我还不是很会
如果一定要用脚步,那可以用if循环来实现,首先进入这个文件夹的最里面的那个,然后一点一点判断,在改名。不过这个方法比较的麻烦,等于编程了
评论列表(0条)