我知道如何从find
:中排除某些目录find <path> ! -path <path to exclude>
。但是,当我需要排除很多目录时,或者当我需要排除的目录列表事先未知时,这可能太乏味而无法使用。
所以,假设我有一个存储在变量中的目录列表。我可以用来xargs
构造一个find
排除这些目录的命令吗?如果是这样,怎么办?
答案1
对于“简单”变量的情况;请注意,目录不能包含空格,因为这是在变量内分隔它们的原因。
excludes='dir1 dir2 dir3'
findexcl=
set -f
for p in $excludes
do
findexcl="$findexcl ! -path $p"
done
echo find ... $findexcl ...