Linux 查找路径不为';一个字也没有

Linux 查找路径不为';一个字也没有,linux,path,find,Linux,Path,Find,我正在尝试列出所有.hpp文件,但路径中包含单词的文件除外, 例如: find-name'*.hpp'将给出 folder1/folder2/something.hpp folder1/folder3/something.hpp folder1/folder4/something.hpp 我想排除folder2中的文件,以便只包含以下文件: folder1/folder3/something.hpp folder1/folder4/something.hpp 只需否定一个-path条件: f

我正在尝试列出所有
.hpp
文件,但路径中包含单词的文件除外, 例如:

find-name'*.hpp'
将给出

folder1/folder2/something.hpp
folder1/folder3/something.hpp
folder1/folder4/something.hpp
我想排除folder2中的文件,以便只包含以下文件:

folder1/folder3/something.hpp
folder1/folder4/something.hpp

只需否定一个
-path
条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
要排除多个目录,请重复以下条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
或者在正则表达式中使用替换项:

find -name '*.hpp' -not -regex '.*/\(folder2\|folder3\)/.*' 

只需否定一个
-path
条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
要排除多个目录,请重复以下条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
或者在正则表达式中使用替换项:

find -name '*.hpp' -not -regex '.*/\(folder2\|folder3\)/.*' 

只需否定一个
-path
条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
要排除多个目录,请重复以下条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
或者在正则表达式中使用替换项:

find -name '*.hpp' -not -regex '.*/\(folder2\|folder3\)/.*' 

只需否定一个
-path
条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
要排除多个目录,请重复以下条件:

find -name '*.hpp' -not -path '*/folder2/*'
find -name '*.hpp' -not -path '*/folder2/*' -not -path '*/folder3/*'
或者在正则表达式中使用替换项:

find -name '*.hpp' -not -regex '.*/\(folder2\|folder3\)/.*' 


谢谢,我怎样才能排除其他文件夹?@OthmanBenchekroun:Dot在正则表达式中表示“任何字符”<代码>*表示“重复零次或多次”。是的,这意味着它们在这里并不重要,不是吗?如果没有它们,我会得到我所需要的。我的意思是,
'.*'.
包含在
'.*.
中,所以结果
.*/\(folder2\\\;folder3\)/.*.
应该包含在
'.*/\(folder2\\ folder3\)/*.
@OthmanBenchekroun:不,
-name
使用“模式”,而不是正则表达式<模式中的code>*转换为正则表达式中的
*
。谢谢,我如何排除其他文件夹?@OthmanBenchekroun:regex中的点表示“任何字符”<代码>*表示“重复零次或多次”。是的,这意味着它们在这里并不重要,不是吗?如果没有它们,我会得到我所需要的。我的意思是,
'.*'.
包含在
'.*.
中,所以结果
.*/\(folder2\\\;folder3\)/.*.
应该包含在
'.*/\(folder2\\ folder3\)/*.
@OthmanBenchekroun:不,
-name
使用“模式”,而不是正则表达式<模式中的code>*转换为正则表达式中的
*
。谢谢,我如何排除其他文件夹?@OthmanBenchekroun:regex中的点表示“任何字符”<代码>*表示“重复零次或多次”。是的,这意味着它们在这里并不重要,不是吗?如果没有它们,我会得到我所需要的。我的意思是,
'.*'.
包含在
'.*.
中,所以结果
.*/\(folder2\\\;folder3\)/.*.
应该包含在
'.*/\(folder2\\ folder3\)/*.
@OthmanBenchekroun:不,
-name
使用“模式”,而不是正则表达式<模式中的code>*转换为正则表达式中的
*
。谢谢,我如何排除其他文件夹?@OthmanBenchekroun:regex中的点表示“任何字符”<代码>*表示“重复零次或多次”。是的,这意味着它们在这里并不重要,不是吗?如果没有它们,我会得到我所需要的。我的意思是,
'.*'.
包含在
'.*.
中,所以结果
.*/\(folder2\\\;folder3\)/.*.
应该包含在
'.*/\(folder2\\ folder3\)/*.
@OthmanBenchekroun:不,
-name
使用“模式”,而不是正则表达式<模式中的代码>*转换为正则表达式中的
*