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

时间:2016-06-28 18:38:42

标签: bash shell find cygwin

我是脚本新手,我正在使用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

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

1 个答案:

答案 0 :(得分:1)

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

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