当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 问一个关于find的用法
帖子发表于 : 2008-02-18 17:24 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
我想用一行find命令来处理一批文件,比如这样将所有文件名前面加一个字符

引用:
find . -iname "*mp3" -execdir mv {} A{} \;


但我发现find中“{}”的表示的是“./xx.mp3”而不是我想要的“xx.mp3”,所以命令出错了。怎么得到我想要的东西?

ps.我知道改名字有其他方法,我想问问find的用法,谢谢。


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-02-19 1:46 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
自己basename就是。|while read i; do echo `basename $i`; done
execdir?


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-02-19 15:57 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
ee总是简洁明了,有的时候不足以解决问题阿。用你的法子,我写成了这样
引用:
find . -iname "*.mp3" |while read i; do mv $i ./A`basename $i`; done

但是,只能处理当前路径,不能处理子路径,而-execdir就是起到这个作用,如何改进?

xiechy,你的法子也不行,-printf '%f'只能在前面输出一个XX.mp3,后面的{}还是指示./XX.mp3


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-02-19 20:24 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
我的意思,只是说。管道以后,就是shell。随便怎么搞都行啊。呵呵。
处理路径,自己用dirname处理,进入目录就是。
因为我只会shell,也因为我不会execdir。
:lol:


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-02-19 20:49 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
代码:
aBiNg:~/incoming ¶ find . -iname "*.mp3"
./test/b.mp3
./a.mp3
aBiNg:~/incoming ¶ find . -iname "*.mp3" | while read i; do mv $i `echo $i | sed 's:\(.*\)/\(.*\)\.mp3:\1/A\2\.mp3:'`; done
aBiNg:~/incoming ¶ find . -iname "*.mp3"
./test/Ab.mp3
./Aa.mp3

冗长。

rename对regexp的支持有限?find的{ }是搜索结果,而非-exec后命令执行结果。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-02-20 15:41 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
确实。这个方法虽然有效,但不漂亮


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-02-20 17:21 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
还在折腾啊。你这样的需要,没通用性啊。脚本丑陋点,没关系。实现了就可以了。
find不是万能的。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译