免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7018 | 回复: 10
打印 上一主题 下一主题

[文件目录] 文件名中有(,想用rename无法改名 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-18 12:45 |只看该作者 |倒序浏览
下载的文件,保存时名字中有些特殊符号,想替换
请指点!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-10-18 12:49 |只看该作者
回复 1# zyq2006


想办法把特殊字符转义就行了吧:用\转义特殊字符 或者用单引号把文件名引起来   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2013-10-18 12:51 |只看该作者
能否把你的测试数据、测试代码、测试结果贴出来看看,我也想试试

论坛徽章:
0
4 [报告]
发表于 2013-10-18 13:52 |只看该作者
用引号、转义,或者全路径

论坛徽章:
0
5 [报告]
发表于 2013-10-18 14:19 |只看该作者
\ 进行转义处理

论坛徽章:
36
摩羯座
日期:2013-09-23 16:37:312015年亚洲杯之沙特阿拉伯
日期:2015-04-14 09:10:172015亚冠之柏太阳神
日期:2015-06-25 08:48:212015亚冠之武里南联
日期:2015-07-28 09:01:082015亚冠之莱赫维亚
日期:2015-07-28 15:44:172015亚冠之柏斯波利斯
日期:2015-09-06 14:08:52白银圣斗士
日期:2015-11-25 17:06:2815-16赛季CBA联赛之吉林
日期:2015-12-09 16:59:072016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之辽宁
日期:2016-04-14 09:29:04luobin
日期:2016-06-17 17:46:3615-16赛季CBA联赛之天津
日期:2016-08-16 14:11:01
6 [报告]
发表于 2013-10-18 14:27 |只看该作者
”shell_集群_架构“里的几个高手都到齐了

论坛徽章:
0
7 [报告]
发表于 2013-10-18 17:25 |只看该作者
本帖最后由 zyq2006 于 2013-10-18 17:30 编辑

谢谢各位大侠指点。
详细情况是:网上下载了一些文件,在UBUNTU里保存时,名字中含有:()等符号。
传到移动硬盘后,再往win7里复制时错误。(由于名字不支持)
文件很多,在一个目录下的多个子目录下2层里
想在UBUNTU里先删掉冒号
find .  -type  f  -name   "*:*.txt"  -exec  rename  's/:/_/g'  {}  \;
会出现
Can't rename ./kecheng/Web Intelligence and Big Data/Unit 6: Connect/7 - 4 - 6-4 Semantic Web (6:1).txt
./kecheng/Web Intelligence and Big Data/Unit 6_ Connect/7 - 4 - 6-4 Semantic Web (6_1).txt: 没有那个文件或目录
从错误信息中直接选取不能执行的操作,在命令行中执行
yq@yq-Inspiron-530:~/kecheng$ rename ./Networks: Friends, Money, and Bytes /Lecture 1 (Version 1): What makes CDMA work for my smartphone?/2 - 18 - Components of a Game (2:20).txt ./Networks_ Friends, Money, and Bytes /Lecture 1 (Version 1)_ What makes CDMA work for my smartphone?/2 - 18 - Components of a Game (2_20).txt
bash: 未预期的符号 `(' 附近有语法错误
所以怀疑是由于文件名中有(导致不能成功替换
但是,如果某文件夹下有若干需要改名的文件,‘a:w().txt’,‘a(w:e).txt’,可以
rename 's/:/_/'  *.txt
去掉其中的冒号,(并不影响替换

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2013-10-18 17:33 |只看该作者
回复 7# zyq2006


执行这个命令看看结果:
  1. ls -l `which rename`
复制代码

论坛徽章:
0
9 [报告]
发表于 2013-10-18 17:49 |只看该作者
find能找到需要的文件,RENAME 似乎也能改名,放一起的错误是怎么来的呢
不用find 用个循环递归到各个文件夹是不是就可以了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2013-10-18 17:56 |只看该作者
回复 9# zyq2006


    把exec的语法改成xargs的语法试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP