LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 763|回复: 4

关于find命令与cp以及重定向的问题

[复制链接]
发表于 2009-2-20 16:54:50 | 显示全部楼层 |阅读模式
我一个目录下有十几个文件夹,里面全是png文件,我把它们全都转变成了xpm文件,用来给fluxbox作图标,结果每个文件夹里的xpm文件的命名方式是相同的,难免出现同名文件,现在我把它们用find命令找出来并输出到文件find.ls里,这样我想用cp命令加重定向这个find.ls文件来把这些xpm图标复制到一个文件夹里,并按统一的命名方式命名,以使得它们不再因同名而被覆盖,各位兄弟姐妹给个方法吧,我想破头都没治了
 楼主| 发表于 2009-2-20 16:55:55 | 显示全部楼层
或者有更好的方法,比我这个方法更简便的也来一个吧,我主要是想学学重定向的一些用法,以便举一反三,当然有更简便的方法我非常乐意学习
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-20 17:07:33 | 显示全部楼层
找到一个方法,曲线救国哈哈,先用find命令加cp命令
  1. find . -name "*.png" -exec cp '{}' ../png/ \;
复制代码
把所有的png文件复制到一个文件夹里,然后再用convert命令转换,OK,就这么简单
不过我还是很希望高手能告诉我重定向的方法,就像前面两个帖子里提出的那样
回复 支持 反对

使用道具 举报

发表于 2009-2-20 17:30:37 | 显示全部楼层
  1. i=1 ; for  j  in `find ./ -type f` ; do mv $j ~/abc/"$i".file;i=$(($i+1)) ; done
复制代码


把当前文件夹下的文件mv到~/abc ,并且重命名为1.file 2.file……
回复 支持 反对

使用道具 举报

发表于 2009-2-20 21:40:48 | 显示全部楼层
难得还有对shell脚本这么感兴趣的同仁,不过我一直shell学习不好,碰到这种需求我一般都是自己编个python脚本解决了,特清晰易懂。显摆一下哈:
  1. #!/usr/bin/python
  2. import os
  3. i = 0
  4. for file1 in os.popen('find -name "*.png"','r'):
  5.         new_filename = 'image' + str(i) + '.png'
  6.         os.system ('mv ' + file1.strip() + ' '+ new_filename)
  7.         i = i + 1
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表