查找名称中包含特定字符串的文件(来自大列表)

Find files with certain strings in names (from a large list)

我是脚本编写的新手,我正在使用 Cygwin 尝试从大型列表中查找包含字符串的文件名。我需要获取文件名的输出列表,或者只是将它们全部移动到一个中央目录(都可以)。它必须能够检查多个目录级别(可能是 maxdepth 3)。我一直在这样做:

find ./incoming -type d \( -name "*012345*" -o -name "*678910*" -o -name "*111213*" \) > moved.txt

...但它并不理想,因为我正在处理的列表可能包含数千个字符串。我也试过这个:

xargs -a files_to_move.txt mv -t ./moved

...除了因为我不知道文件的全名,所以没有成功。有什么想法吗?

假设所有字符串都在list.txt

for i in $(cat list.txt); do find <your_dir> -name "*${i}*" ; done