BASH 查找文件名但跳过文件名列表

BASH find file names but skip a list of file names

我正在尝试根据 "find" 输出在 BASH 中设置一个进程。但是,我还有一个不应处理的文件名列表,但它们位于同一目录中。我无法按文件类型区分文件。

例子如下:

m001.png
m002.jpg
m003.tif
m004.png
m005.svg
...
m300.png

假设我有一个列表,其中包含我不想处理的名称:

m003.tif
m005.svg
m055.tif
m056.png
m078.jpg
m079.jpg
...
m275.svg

该列表在类型上似乎是随机的但有限,我无法按类型分隔文件,即

find . ! -name '\*.svg' ! -name '\*.tif' -exec sh c <process> {} +

不是一个选项。

有没有办法结合 find 和 printf 以递归地创建 find 命令?

怎么样:

find . $(printf "! -name %s " $(cat exclude_list_file)) -exec process {} \;