码迷,mamicode.com
首页 > 移动开发 > 详细

批量移动文件并重命名

时间:2015-05-28 14:18:43      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:批量移动 重命名

目录结构如下:

/data/backup/
├── 20150508
│   ├── access_20150508.gz
│   └── access_20150508.gz.1
├── 20150509
│   ├── access_20150509.gz
│   └── access_20150509.gz.1
├── 20150510
│   ├── access_20150510.gz
│   └── access_20150510.gz.1

需求,将所有的.1结尾的文件移动到/data/backup1/目录下,目录结构不能变,也就是说/data/backup1下也是以日期命名的目录,文件移动到对应目录下面,并且重命名去掉.1


问题重现:

通过一个脚本创建实验需要的文件,脚本内容如下:

#!/bin/sh
for i in `seq 20`
do
  dir_name=$(date +%Y%m%d -d "$i days ago")
  dst_dirname=/data/backup/$dir_name
  mkdir -p $dst_dirname
  cd $dst_dirname 
  #为区分移动后的同名文件,分别写入1和2
  echo "1"> access_${dir_name}.gz
  echo "2"> access_${dir_name}.gz.1
done


解决方法:

还是通过一个脚本来实现:

#!/bin/sh
for file in `find /data/backup/ -name *.gz.1`
do
  dir_name=`echo $file |awk -F/ ‘{print $4}‘`  #提取出目录名
  dst_dir_name=/data/backup1/$dir_name/
  mkdir -p $dst_dir_name   #创建要移动到的目录
  mv $file $dst_dir_name
  cd $dst_dir_name
  rename gz.1 gz ./*  #因为当前目录下只有一个.gz.1的文件,所以可以用*匹配
done

执行脚本后查看结果:

[root@c66-3 data]# tree /data/backup/
/data/backup/
├── 20150508
│   └── access_20150508.gz
├── 20150509
│   └── access_20150509.gz
├── 20150510
│   └── access_20150510.gz
...
[root@c66-3 data]# grep -r 1 /data/backup/
/data/backup/20150524/access_20150524.gz:1
/data/backup/20150514/access_20150514.gz:1
/data/backup/20150519/access_20150519.gz:1
...

[root@c66-3 data]# tree /data/backup1/
/data/backup1/
├── 20150508
│   └── access_20150508.gz
├── 20150509
│   └── access_20150509.gz
├── 20150510
│   └── access_20150510.gz
...
[root@c66-3 data]# grep -r 2 /data/backup1/
/data/backup1/20150524/access_20150524.gz:2
/data/backup1/20150514/access_20150514.gz:2
/data/backup1/20150519/access_20150519.gz:2
...

通过结果可以看出,所有/data/backup/目录下内容是2的.gz.1的文件都已经成功移动到/data/backup1/目录下,并且目录结构保持不变。

本文出自 “分享是一种快乐” 博客,请务必保留此出处http://gladiator.blog.51cto.com/2313511/1655914

批量移动文件并重命名

标签:批量移动 重命名

原文地址:http://gladiator.blog.51cto.com/2313511/1655914

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!