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

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

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

xxx-LD.jpg
xxx-SD.jpg
xxx.jpg

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

#1楼 票数:1 已采纳

您可以添加更多测试:

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

-not不是GNU扩展; 您可以使用! -name ! -name 在某些外壳中, ! 必须逃脱: \\! -name \\! -name

#2楼 票数:0

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

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

  ask by translate from so

未解决问题?本站智能推荐:

2回复

UnixShell组文件扩展名(按大小)

我想按当前和所有子文件夹中的扩展名对文件大小进行分组和排序 得到的代码可获取当前文件夹和所有子文件夹中的所有文件扩展名 现在,我需要按这些扩展名求和所有文件的大小并将其打印出来。有任何想法可以做到这一点吗? 示例输出:
1回复

如何从文件中递归删除文件扩展名?

因此,我只运行了以下命令即可将文件扩展名添加到一堆文件中。 我以为我会一一撤消它们,但事实证明我需要一次全部撤消它们,我该如何扭转呢? 在文件之前: aFile.targetFileType 现在是: aFile.targetFileType.not 我需要将其返回到aFile.targetFi
1回复

ShellBash将扩展名添加到没有一个文件

我正在尝试创建一个scrit,它可以查找不带扩展名的文件,并在其末尾添加“ html”。 我能够创建一个小的脚本来获取没有“。”的任何内容。 最后,但是有时人们使用“。”作为文件。 它的名字与它的扩展名无关,我也不知道该怎么办。 这是一个例子: 这是我到目前为止所拥有的: 同样
2回复

Shell使用sed从查找结果中删除文件扩展名

我正在尝试跑步 显示当前目录和子目录中所有以.sh结尾的文件。 我使用-exec basename {}来删除文件的位置,所以我只获取文件名本身。 find命令运行良好,但是当我将其sed "s/.sh/ "到sed "s/.sh/ "我收到一条错误消息sed: 1: "s/.sh/ "
1回复

扩展名删除文件的最佳方法是什么?

我正在寻找按扩展名从目录删除文件的最佳方法。 我计划按日期进行。 但是现在,我正在测试它的工作方式。 这个: 或这个 ? 我想用最少的机器和操作系统资源来做。 也许您知道其他方法。 因为我将删除一岁的文件。 它可以称为滞后。 谢谢。
3回复

搜索具有以特定扩展名结尾的数据类型的递归文件以删除文件

我们要搜索和删除以.pppd扩展名结尾的data文件我们可以将文件搜索为 但是如何告诉find命令仅过滤data文件? 示例如何验证文件是否为数据(通过file命令) 来自手册页的文件命令
2回复

循环浏览所有具有特定扩展名的文件并对其执行某些操作

这是我使用Linux Shell脚本的第一个小时,它看起来确实很强大,但是我仍然有些困惑。 我想递归遍历目录中具有特定扩展名的所有文件(所有子目录,子子目录和...),并通过在它们上运行可执行文件来生成一个具有相同名称但原始文件确切位置具有不同扩展名的新文件。 以下是它的伪代码:
1回复

将具有特定扩展名的文件符号链接到Linux中的另一个文件夹

我目前在“ / media /”下安装了许多驱动器,我想递归地扫描所有安装的驱动器,以查找具有特定扩展名“ * .foo”的文件。 找到后,我想将这些文件符号链接到其他目录。 一个要求是,在创建符号链接时,我必须保持文件的基本名称相同。 我自己无法使用“ find -exec”提供一个简单