如何获取特定目录的完整路径?

Sam*_*rom 1 linux bash shell

我有一个目录/ home/usr/AAA,我存储了一些文件和文件夹

/home/usr/AAA/Mark/15456/sdfsd/VIP_Info_sdfsdf
/home/usr/AAA/Jack/23678/gwewd/VIP_Info_wetwod
...
Run Code Online (Sandbox Code Playgroud)

我可以使用一些bash脚本

cd /home/usr/AAA     
find -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf '%f\n'
Run Code Online (Sandbox Code Playgroud)

回国

VIP_Info_sdfsdf
VIP_Info_wetwod
Run Code Online (Sandbox Code Playgroud)

获取我感兴趣的特定文件夹名称,即以VIP_Info开头的文件夹名称.

但是,我想进入每个文件夹并进行一些操作.

请问如何获取每个文件夹的完整路径?

che*_*ner 5

使用$PWD%P格式:

find -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf "$PWD/%P\n"
Run Code Online (Sandbox Code Playgroud)

或者,使用%p并传递当前目录的全名find,而不是将其默认为工作目录.

find /home/usr/AAA -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf "%p\n"
Run Code Online (Sandbox Code Playgroud)

请注意-print并且-printf "%p\n"是等效的.

由于您没有使用任何其他提供的过滤器,find并且您似乎知道要查找的目录的深度,因此您可以简单地使用glob模式而不涉及find:

printf "%s\n" /home/usr/AAA/*/*/*/VIP_Info*/
Run Code Online (Sandbox Code Playgroud)