免费注册 查看新帖 |

Chinaunix

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

[Linux] 求助:如何用shell实现批量拷贝不同文件夹下的同名文件到同一文件夹,并重命名 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-22 13:04 |只看该作者 |倒序浏览
本帖最后由 she19890320 于 2014-04-22 14:04 编辑

本人Linux小白,有C++/C#编程基础。初次接触Linux,而且不是做编程。

如题,做InSAR处理得到很多同名文件,存放在一个目录下不同文件夹中。
现在需要将其拷贝到同一个文件夹,并以进行重命名。
根据网上找到的帖子,比葫芦画瓢写了一个但是没有成功,请各位帮忙看看是哪里出了问题,或者有更好的方案。
这是我写的脚本
  1. cd /mnt/sdb1/Processing/TerraSAR-X/20140416/INSAR_20120224
  2. # define
  3. tf=cint.minrefdem_10l.ras
  4. destpath=/mnt/sdb1/Figures_and_result/TerraSAR-X/20140416/Interferograms/testfiles
  5. [ ! -d $destpath ] && mkdir -p $destpath

  6. # find the file and copy to the dest dir
  7. FindCopy()
  8. {
  9. if [ $? -eq 0 ];then
  10. for i in $(find / -name $tf);do
  11. [ ! -d $destpath/$(dirname $i) ] && mkdir -p $destpath$(dirname $i)
  12. cp -rf $i $destpath$(dirname $i)
  13. echo $i
  14. done
  15. else
  16. fi
  17. }

  18. FindCopy
复制代码

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-04-22 14:06 |只看该作者
你执行一下这个脚本, 就会报错给你了. 看看错误是啥就知道该怎么改了.

论坛徽章:
0
3 [报告]
发表于 2014-04-22 16:09 |只看该作者
谢谢,当时我运行时没有反应,一直在运行状态,但是文件并没有拷贝。不知道哪里出问题了。
不过已经解决了~代码这东西都是相相通的,可能我自己写的不够简洁,但是能用了。
非常感谢
回复 2# q1208c


   

论坛徽章:
0
4 [报告]
发表于 2014-04-22 16:11 |只看该作者
这是代码:
  1. # define
  2. tf=cint.minrefdem_10l.ras
  3. path=/mnt/sdb1/Processing/TerraSAR-X/20140416/INSAR_20120224
  4. destpath=/mnt/sdb1/Figures_and_result/TerraSAR-X/20140416/Interferograms/testfiles
  5. [ ! -d $destpath ] && mkdir -p $destpath

  6. # find the file and copy to the dest dir
  7. FindCopy()
  8. {
  9. if [ $? -eq 0 ];then
  10. for i in $(find $path -name $tf);do
  11. #[ ! -d $destpath$(dirname $i) ] && mkdir -p $destpath$(dirname $i)

  12. temp=$(dirname $i)
  13. cp -rf $i $destpath/${temp##*/}$tf
  14. echo $destpath/${temp##*/}$tf
  15. done
  16. else
  17. echo "pls some files first."
  18. fi
  19. chmod -R 777 $destpath
  20. }

  21. FindCopy
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP