您能否提供一些指针,以有效方式将文件从基本路径移动到多个路径。文件夹结构已创建。
/Path/AdminUser/User1/1111/Reports/aaa.txt到/Path/User1/1111/Reports/aaa.txt
/Path/AdminUser/User1/2222/Reports/bbb.txt到/Path/User1/2222/Reports/bbb.txt
/Path/AdminUser/User2/3333/Reports/ccc.txt到/Path/User2/3333/Reports/ccc.txt
/Path/AdminUser/User2/3333/Reports/ddd.txt到/Path/User2/3333/Reports/ddd.txt
我不想移动目录结构。我想每天将文件从该源路径移动到目标路径。我需要指针来编写bash脚本,以确保aaa.txt可以准确地定位并仅从/Path/AdminUser/User1/1111/Reports/
到/Path/User1/1111/Reports/........
例如:
#!/bin/bash
dir1="/Path"
subs= `ls $dir1/AdminUser`
for i in $subs; do
mv $dir1/AdminUser/$i/*/Reports $dir1/$i/*/Reports
done
最佳答案
这应该工作:
#!/bin/bash
dir1=/home/jahid/newfolder
for i in "$dir1"/AdminUser/*; do
if [[ -d $i && ! -L $i ]]; then
dir2="${i##*/}"
for j in "$i"/*; do
if [[ -d $j && ! -L $j ]]; then
j="${j##*/}"
[[ -d "$dir1"/"$dir2"/"$j" ]] || mkdir -p "$dir1"/"$dir2"/"$j"
mv "$i"/"$j"/Reports "$dir1"/"$dir2"/"$j"/
fi
done
fi
done
编辑:添加了代码来检查现有目录结构,如果不存在,它将创建它。
关于linux - Linux将文件从基本路径循环移动到多个路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30010248/