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 {} \;
我正在尝试根据 "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 {} \;