UNIX:如果给定部分路径,如何使用find命令查找完整路径

时间:2016-04-25 19:03:35

标签: bash unix path find

我知道如何使用

查找文件
find . -name "file_name"

但如果我获得路径的一部分,请说" folder1 / subfolder2 /",如何获得包含此部分路径的所有完整路径?

示例

部分路径:folder1/subfolder2/

欲望结果:

/bob/folder1/subfolder2/yo/
/sandy/folder1/subfolder2/hi/

6 个答案:

答案 0 :(得分:11)

使用-wholename选项代替-name

find FOLDER -wholename '*folder1/folder2/*' 

答案 1 :(得分:2)

这个对我有用(使用bash)

ls -l /**/folder1/subfolder2/**

答案 2 :(得分:2)

你可以这样做:

find . -path "*folder1/folder2" -prune -exec find {} -type f -name file.txt \;

使用-prune,您不必在目录

中的第一场比赛后递归

答案 3 :(得分:0)

从@ hek2mgl扩展,

find / -wholename '*folder1/subfolder2/*'

答案 4 :(得分:0)

我想到了这一点,其他解决方案对我不起作用

find1是一个函数

find1 ()
{
    for file in `find -name $1`;
    do
        full_path=$PWD/$file;
        echo $full_path;
    done
}

答案 5 :(得分:0)

如果您不想保持posix兼容,至少在Linux上,您也可以使用-regex(和-regextype)选项。

例如:

find folder/ -regextype posix-extended -regex "(.*/)?deer/(.*/)?beer"

将匹配

folder/deer/beer
folder/deer/dir/forest/beer/
folder/forest/deer/dir/forest/beer/

有关详细信息,请参见linux man。