如何从目录中提取带有扩展名的文件?

时间:2018-10-12 15:46:56

标签: bash shell find

我目前正在使用以下bash命令从大型多层目录中提取图片:

ChannelHandlerContext

但是,所有图片都存储在3个版本中:

find . -name \*.jpg -exec cp {} /newdir_path_.. \;

我只想提取xxx-LD.jpg xxx-SD.jpg xxx.jpg 图片,而不是LD和SD ... 应该如何修改我的命令以执行这种提取?

2 个答案:

答案 0 :(得分:1)

您可以添加更多测试:

find . -name '*.jpg' -not -name '*-[LS]D.jpg' -exec cp {} /newdir_path_.. \;

-not是GNU扩展;您可以改用! -name。在某些Shell中,必须转义!\! -name

答案 1 :(得分:0)

考虑到文件名仅包含.jpg之前的数字,这可能对您也有用:

find . -iregex '.*/[0-9]*\.jpg$' -exec cp {} /newdir_path_.. \;