我的应用程序有一个像
这样的文件夹结构/PNRPHD1/ex1/11.txt
/PNRPHD1/ex1/ex2/11.txt
/PNRPHD1/ex1/ex2/ex3/23.txt
/PNRPHD1/ex1/ex2/34.txt
/PNRPHD1/ex1/ex3/sp4/sp3/4334.txt,
但是 / PNRPHD1是主文件夹,在该文件夹中我需要每次迭代并转到最后一级并检查文件是否存在,在该目录中是否存在, 如果File是目录的内容,那么我需要构建该路径并从该循环中走出来。我应该将上面提到的路径作为变量的输出。
注意:在上面的目录结构中,每个目录都可以包含其他子目录或文件,它不会同时包含
任何人都可以建议我在IF循环中尝试这样做,但是这会得到太多的代码,我想用最少的代码实现
DIR_REG = /PNRPHD1;
ls -p $DIR_REG | while read -r dir
do
echo "directory under is -- " ${dir} >>${DEBUG_LOG_FILE}
BUP="/cygdrive/d/psoft/${PSFT_SID}/${dir}";
ls -p $BUP | while read -r dir1
do
if [ -f "${BUP}/${dir1}" ]; then
mkdir -p "${BUP}backup"
echo "level of directory -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
else
echo "level of directory -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
fi
done
done
我正在寻找一个更好的shell脚本和简洁的脚本,它完成了所需的任务..
更新:
我期望我的循环的输出应该在每次迭代中都有一个变量输出。
第一案例:/ ex1 /
第二种情况:/ ex1 / ex2
第三种情况:ex1 / ex2 / ex3 /
第四种情况:/ ex1 / ex2 / ex3 /
第五种情况:/ ex1 / ex3 / sp4 / sp3 /
答案 0 :(得分:1)
为什么不创建一次所需的目录树。然后使用tar
创建tar文件。您需要相同目录结构的任何计算机只需解压缩tar
文件。
可以在here
中找到tar的手册页答案 1 :(得分:0)
我尝试使用find命令 找 。型f印刷; 列出所有类型的文件
和
找到。型d印刷; 列出所有类型的目录获取文件或目录列表后,使用DirName命令获取路径