Linux 如何使用脚本中的循环读取完整路径直到目录结构结束
我有如下目录结构: /home/ABCD/apple/ball/car/divider.txt,/home/ABCD这就像是我的应用程序的根目录,我可以很容易地得到它,从那里所有的子文件夹可能会因每种情况而有所不同,因此我正在寻找一个通用程序,可以通过一些循环提取路径 我想将目录结构提取到一个单独的变量中,如“/home/ABCD/apple/ball/car/” 有人能帮我吗 第二个示例:/home/ABCD/adam/nest/mary/user.txtLinux 如何使用脚本中的循环读取完整路径直到目录结构结束,linux,bash,unix,scripting,Linux,Bash,Unix,Scripting,我有如下目录结构: /home/ABCD/apple/ball/car/divider.txt,/home/ABCD这就像是我的应用程序的根目录,我可以很容易地得到它,从那里所有的子文件夹可能会因每种情况而有所不同,因此我正在寻找一个通用程序,可以通过一些循环提取路径 我想将目录结构提取到一个单独的变量中,如“/home/ABCD/apple/ball/car/” 有人能帮我吗 第二个示例:/home/ABCD/adam/nest/mary/user.txt 变量应获得以下值-“/home/AB
变量应获得以下值-“/home/ABCD/adam/nest/mary/”使用
dirname
$ dirname /home/ABCD/apple/ball/car/divider.txt
/home/ABCD/apple/ball/car
分配给变量do
var=$(dirname /home/ABCD/apple/ball/car/divider.txt)
echo "$var"
在
=
前后没有空格如果需要结束斜杠/
,可以选择一个:
kent$ echo "/home/ABCD/adam/nest/mary/user.txt"|grep -Po '.*/'
/home/ABCD/adam/nest/mary/
或
或
当我开始时,我不会有完整的路径/home/ABCD/apple/ball/car/divider.txt,我需要从/home/ABCD开始,一直移动到结构的末尾,然后提取完整的路径。有没有一种简单的方法可以遍历到文件夹结构的末尾,因为每个请求的文件夹结构都会发生变化?我不知道您要做什么。如果您想要主页下的所有目录,请执行
查找$home-键入d
。如果要修剪前缀,请执行(cd$HOME;find.-type d)
当我开始时,我不会有完整的路径/HOME/ABCD/apple/ball/car/divider.txt,我需要从/HOME/ABCD开始,移动到结构的结尾,并提取完整的路径,有没有简单的方法从/HOME/ABCD遍历到文件夹结构的结尾,因为每个请求的文件夹结构都会更改
kent$ echo "/home/ABCD/adam/nest/mary/user.txt"|sed -r 's#(.*/).*#\1#'
/home/ABCD/adam/nest/mary/
kent$ echo $(dirname /home/ABCD/adam/nest/mary/user.txt)"/"
/home/ABCD/adam/nest/mary/