我知道如何使用
查找文件find . -name "file_name"
但如果我获得路径的一部分,请说" folder1 / subfolder2 /",如何获得包含此部分路径的所有完整路径?
示例
部分路径:folder1/subfolder2/
/bob/folder1/subfolder2/yo/
/sandy/folder1/subfolder2/hi/
答案 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。