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

时间:2014-03-17 17:30:50

标签: linux bash shell

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

/home/usr/AAA/Mark/15456/sdfsd/VIP_Info_sdfsdf
/home/usr/AAA/Jack/23678/gwewd/VIP_Info_wetwod
...

我可以使用像

这样的bash脚本
cd /home/usr/AAA     
find -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf '%f\n'

返回

VIP_Info_sdfsdf
VIP_Info_wetwod

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

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

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

2 个答案:

答案 0 :(得分:5)

改为使用$PWD%P格式:

find -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf "$PWD/%P\n"

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

find /home/usr/AAA -maxdepth 4 -mindepth 4 -type d -iname "VIP_Info*" -printf "%p\n"

请注意,-print-printf "%p\n"是等效的。

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

printf "%s\n" /home/usr/AAA/*/*/*/VIP_Info*/

答案 1 :(得分:0)

不确定为什么那个人会删除他的帖子,但这是一个很好的解决方案:

find `pwd` -type d -iname "VIP_Info*"

仅供其他人参考。