我必须从不同的文件夹中复制许多文件。
-
不知道源文件夹中有多少个
-
知道文件夹与包含的文件同名
-
只有包含某些文件扩展名的文件夹需要复制
源文件夹结构示例
源文件夹具有以下结构
root
- folder1
- folder1.txt
- folder2
- folder2.csv
- folder3
- folder3.txt
目标文件夹结构示例
目标文件夹应如下所示结构
root
- folder1
- folder1.txt
- folder3
- folder3.txt
cp src/**/*.txt dest/
for file in $(ls *.txt);
do mkdir -p source/${file%.*}/ && mv $file dest/${file%.*}/;
done
首先,我复制目标文件夹中的所有文件。假设每个文件都在一个同名的文件夹中,那么我将移动这些文件,重新创建原始结构。这个脚本效果很好。
现在,需求已更改为支持多级文件夹结构。例如。
root
- folder1
- folder11
- folder11.txt
- folder2
- folder2.csv
- folder3
- folder3.txt
如何调整脚本以保持通用?