shell 实战拷贝不特定文件到不特定目录

   群里的朋友问了一个工作中实际遇到的问题。他有两个列表文件,一个存的是文件,一个存的是目录,要将文件列表里的文件拷贝到目录列表中的目录中。两个文件行数相同,一一对应。

文件a(文件列表)的内容如下:

/data/discuz/201310/12/4.txt

/data/discuz/201311/11/3.txt

/data/discuz/image/5.txt  

文件b(目录列表)的内容如下:

/data/www/241/241discuz/201310/12

/data/www/241/241discuz/201311/11

/data/www/241/241discuz/image

   实现这个功能很简单,遍历目录列表,如果这个目录不存在,就创建,将a中的对应行取出。判断文件是否存在,如果存在拷贝过去,如果不存在,输出到错误日志。闲言少叙,上代码:



#!/bin/bash
#create by Chenchao Gao
#function: cp file in a to dir in b
#date: 2013/12/02
num=0
LOGFILE="/tmp/faild_log.txt"
for line in `cat 2.txt`
do
        if [ ! -d $line ];then
                mkdir -p $line
        fi
        ((num=num+1))
        fileName=`sed -n ${num}p 1.txt`
        if [ -e $fileName ];then
                cp $fileName $line
        else
                echo "$fileName is not exist,copy to $line faild" >>$LOGFILE
        fi
done


你可能感兴趣的:(shell,文件目录,实战拷贝)