您可以提供一些指示,以有效的方式将文件从基本路径移至多个路径。填料结构已创建。
/path/adminuser/user1/1111/reports/aaa.txt to/path/user1/1111/reports/aaa.txt
/path/adminuser/user1/2222/reports/bbb.txt to/path/user1/2222/reports/bbb.txt
/path/path/user2/3333/reports/ccc.txt to/path/user2/3333/reports/ccc.txt
/path/path/user2/3333/reports/ddd.txt to/path/user2/3333/reports/ddd.txt
我不想移动目录结构。我想每天将文件从该源路径移至目标路径。我需要指针来编写bash脚本,以确保aaa.txt完全可以从 /Path/AdminUser/User1/1111/Reports/
到 /Path/User1/1111/Reports/........
ex:
#!/bin/bash
dir1="/Path"
subs= `ls $dir1/AdminUser`
for i in $subs; do
mv $dir1/AdminUser/$i/*/Reports $dir1/$i/*/Reports
done
这看起来可以在不脚本的情况下实现。看看rsync。
rsync -r /Path/AdminUser/* /NewPath/
这应该有效:
#!/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
编辑:添加了代码以检查现有目录结构,如果不存在,它将创建它。