
我知道如何從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 ...