免费注册 查看新帖 |

Chinaunix

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

[文件目录] 怎么遍历文件目录下的程序生成的目录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-29 00:02 |只看该作者 |倒序浏览
是一个视频转码的shell,调用ffmpeg把/data/www.ccc.com/uploads/目录下的所有视频文件转成flv文件。
现在有个问题就是目录 /data/www.ccc.com/uploads下还有php程序生成的子目录 如20140519   20140520   20140521都是根据时间生成的日期目录,所有的视频文件都是丰收在相应的日期目录下的,现在的问题是shell可以找到视频文件,也能转换,但是转换完成保存时,却都跑到uploads/目录下了,不是在相应的日期目录下
  1. #!/bin/sh
  2. Extension="mpg 3gp mov mpeg vod mp4 m4v avi wmv mpe rmvb rm"

  3. #INPUT YOUR SUPESITE PATH
  4. SiteRoot="/data/www.ccc.com"
  5. for e in $Extension; do
  6.          FullFiles=`find $SiteRoot/uploads -name "*.$e" -exec ls {} \;`
  7.          for FullFile in $FullFiles;do
  8.          if [ -f $FullFile ];then
  9.                  a=`basename $FullFile | awk -F "." '{print $1}'`

  10.                  if [ ! -d $SiteRoot/uploads ]; then
  11.                          mkdir $SiteRoot/uploads
  12.                          chown -R www:www $SiteRoot/uploads
  13.                  fi
  14.                  ffmpeg -i $SiteRoot/uploads/$a.flv -y -f image2 -ss 8 -sameq -t 0.001 -s 260x176 $SiteRoot/uploads/$a.jpg
  15.                  chown www:www $SiteRoot/uploads/$a.jpg

  16.          fi
  17.          done
  18. done
复制代码

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
2 [报告]
发表于 2014-09-29 08:56 |只看该作者
回复 1# wan8832


    你的变量a用awk取的是basename filename,后面的转格式命令中,也没看到哪儿提到了日期目录

   为啥能把文件放在日期目录下呢?

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
3 [报告]
发表于 2014-09-29 09:39 |只看该作者
1. 查找目录用完整目录保存到一个数组
2. 获取的文件用dirname获取文件父目录,保存到一个数组
3. 转换第一个数组内容,mv到第二个数组保存的目录

论坛徽章:
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
4 [报告]
发表于 2014-09-29 09:51 |只看该作者
  1. #!/bin/sh
  2. Extension="mpg 3gp mov mpeg vod mp4 m4v avi wmv mpe rmvb rm"

  3. #INPUT YOUR SUPESITE PATH
  4. SiteRoot="/data/www.ccc.com"
  5. for e in $Extension; do
  6.     FullFiles=`find $SiteRoot/uploads -name "*.$e" -exec ls {} \;`
  7.     for FullFile in $FullFiles; do
  8.         if [ -f $FullFile ]; then
  9.             a=`basename $FullFile | awk -F "." '{print $1}'`
  10.             # 下面这个判断是多余的吧,因为上面都已经 find 过了
  11.             # if [ ! -d $SiteRoot/uploads ]; then
  12.                 # mkdir $SiteRoot/uploads
  13.                 # chown -R www:www $SiteRoot/uploads
  14.             # fi
  15.             NewName=`dirname $FullFile`/$a.jpg
  16.             ffmpeg -i $SiteRoot/uploads/$a.flv -y -f image2 -ss 8 -sameq -t 0.001 -s 260x176 $NewName
  17.             chown www:www $SiteRoot/uploads/$a.jpg
  18.         fi
  19.     done
  20. done
复制代码

论坛徽章:
0
5 [报告]
发表于 2014-09-29 22:47 |只看该作者
非常感谢,我试一下呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP