gpt4 book ai didi

linux - 如何在 Unix shell 脚本中为任何目录结构构建文件夹路径

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:28 25 4
gpt4 key购买 nike

我的应用程序有一个像

这样的文件夹结构
/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/第 5 种情况:/ex1/ex3/sp4/sp3/

最佳答案

为什么不创建一次所需的目录树。然后使用 tar 创建一个 tar 文件。您需要相同目录结构的任何机器只需解压缩 tar 文件即可。

可以从 here 找到 tar 的手册页

关于linux - 如何在 Unix shell 脚本中为任何目录结构构建文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com