Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用脚本中的循环读取完整路径直到目录结构结束_Linux_Bash_Unix_Scripting - Fatal编程技术网

Linux 如何使用脚本中的循环读取完整路径直到目录结构结束

Linux 如何使用脚本中的循环读取完整路径直到目录结构结束,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/apple/ball/car/divider.txt/home/ABCD这就像是我的应用程序的根目录,我可以很容易地得到它,从那里所有的子文件夹可能会因每种情况而有所不同,因此我正在寻找一个通用程序,可以通过一些循环提取路径

我想将目录结构提取到一个单独的变量中,如“/home/ABCD/apple/ball/car/” 有人能帮我吗

第二个示例:/home/ABCD/adam/nest/mary/user.txt
变量应获得以下值-“/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/