Shell 递归多个子目录下的文件cp or mv到同一个目录下

时间:2021-06-01 11:30:29

最要操作其实就只有两个’ls’和’cp’。
1、ls 用来遍历当前目录下的文件。
2、cp用来复制当前目录下的文件到目标目录中。

########################################################################
# File Name: cpToFile.sh
# Author: zsj
# Created Time: Mon 24 Apr 2017 12:30:09 PM CST
#########################################################################
#!/bin/bash

src="/home/zsj/data"      //源文件的父目录
dst="/home/zsj/testDest"  //目标目录

function read_dir(){
for file in `ls $1`;do #操作1
# echo "-->"$file
if [ -d $1"/"$file ];then
read_dir $1"/"$file
elif [ -f $1"/"$file ];then # 操作2||cp base file to dst file
# echo $1$"/"$file
[ `cp $1"/"$file $dst` ]
# else echo ".."
fi
done
}

read_dir $src
echo "successful!"
#echo $1" "$2