我有一个目录/ 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开头的文件夹。
但是,我想进入每个文件夹并进行一些操作。
请问如何获取每个文件夹的完整路径?
答案 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*"
仅供其他人参考。