Linux将文件从基本路径移至循环中的多个路径



您可以提供一些指示,以有效的方式将文件从基本路径移至多个路径。填料结构已创建。

/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

编辑:添加了代码以检查现有目录结构,如果不存在,它将创建它。

相关内容

  • 没有找到相关文章