1、复制当前目录所有文件夹及其子文件夹下的.jpg文件到store文件夹下
2、不论多少层目录结构都可以
3、更改文件后缀名.jpg为其它后缀名的文件同样适用
#!/bin/bash
# yikai from TUST,2020/11/02
# 功能:复制当前目录中所有文件夹及其子文件夹下的*.jpg文件到store文件夹下
# 不论多少层目录结构都可以
# 更改文件的后缀名.jpg为其它后缀名的文件同样适用
Execution() #定义函数
{
if ls *.jpg >/dev/null 2>&1;then #“>/dev/null 2>&1”这两个参数的目的是把没有*.jpg文件的错误打印隐藏掉,当然不加这两参数也不影响执行结果
cp *.jpg $StoreAbsPath -rf #强制复制当前目录中的*.jpg文件到store中
fi
dir=$(ls -l ./ |awk '/^d/ {print $NF}') #获取当前目录下的所有文件夹的名称
for i in $dir #遍历目录
do
[ $i = $DirStoryName ] && continue #当i为当前存放所有图片的store文件夹时跳过本次循环
echo $i
cd $i
Execution #函数递归调用,**遍历下层目录中的.jpg文件**
cd ..
done
}
DirStoryName=store #store为图片将要存储的文件夹名,唯一可以更改的地方
[ -d $DirStoryName ] || mkdir $DirStoryName #存储目录不存在则建立
StoreAbsPath=$(pwd)/$DirStoryName #获取存储目录的绝对路径
Execution #函数调用执行
echo "Congratulation!!!!!!!!!"