当前位置: > 热传

刘景一:linux 修改当前目录包含子目录 下 aaa 开头的目录名及文件名 替换为 bbb开头 ...

时间:2022-04-19 10:28:50 热传 我要投稿

李博雅的回答:

用find+exec命令结合rename命令可实现文件名“部分替换” 因为存有目录的替换,目录替换后,就无法继续搜索原目录了,所以,需要多次执行才能完成所有目录的替换。 while?[?1?] do ????find?.?-name?"aaa*"?-exec?rename?aaa?bbb?{}?; ????if?[?$??-eq?0?]??#如果替换中有错误,则上面命令执行结果会返回非0 ????then ????????break; ????fi done #注意,此命令缺陷是,当同一目录下,有aaa123文件,也有bbb123文件,则原bbb123文件将会被aaa123所覆盖!!rename命令格式说明: rename?from?to?file...第一个参数from:被替换掉的字符串 第二个参数to:替换成的字符串 第三个参数file:匹配要替换的文件模式 ? ?可以是单文件,也可以是匹配模式(多文件,如aaa* ? aaa? ? aaa?? ) *匹配多字符, ?匹配单字符

黄徽的回答:

用find+exec命令结合rename命令可实现文件名“部分替换” 因为存有目录的替换,目录替换后,就无法继续搜索原目录了,所以,需要多次执行才能完成所有目录的替换。 while?[?1?] do ????find?.?-name?"aaa*"?-exec?rename?aaa?bbb?{}?; ????if?[?$??-eq?0?]??#如果替换中有错误,则上面命令执行结果会返回非0 ????then ????????break; ????fi done #注意,此命令缺陷是,当同一目录下,有aaa123文件,也有bbb123文件,则原bbb123文件将会被aaa123所覆盖!!rename命令格式说明: rename?from?to?file...第一个参数from:被替换掉的字符串 第二个参数to:替换成的字符串 第三个参数file:匹配要替换的文件模式 ? ?可以是单文件,也可以是匹配模式(多文件,如aaa* ? aaa? ? aaa?? ) *匹配多字符, ?匹配单字符

高欣的回答:

这个简单的命令完成不了。用脚本或者是c/c++写个小程序。 首先将当前目录及其子目录和所有文件取出来,然后循环去匹配是否以aaa开头,如果是以aaa开头的则将aaa替换成bbb,后面部分不变。

郑博文的回答:

mv aaa bbb OK?

张晓阳的回答:

最新推荐