复制包含具有给定扩展名的文件的所有文件夹

多米尼克·诺瓦克(DominikNovák)

在Mac终端中,我要查找包含至少一个具有指定扩展名的文件的所有目录,并将它们复制到其他位置。我发现find . -iname '*.jpg' -exec dirname {} \;似乎可以找到包含*.jpg文件的所有目录,但是我不确定如何复制它们。我尝试将其与合并,rsync但无法使其正常工作。最好的方法是什么?

充满希望

这是一个bash友好的衬板,可将其中包含jpg的所有文件夹复制到一个名为backup的文件夹中,同时保持目录结构

mkdir backup; for folder in $(find . -type f -name '*.jpg' | sed -r 's|/[^/]+$||' |sort |uniq); do cp -r --parents $folder backup; done

首先,它创建一个空backup文件夹,然后该find命令在当前目录中查找所有以结尾的文件.jpgsedsortuniq命令修剪查找输出到刚刚建立的目录名称和删除重复。最终,cp -r --parentsin循环会在创建任何丢失的文件时递归地复制文件夹。

您可以像这样sed -r通过使用-printf标志来四处使用find

mkdir backup; for folder in $(find . -type f -name '*.jpg' -printf "%h\n" |sort |uniq); do cp -r --parents $folder backup; done

如果您find不支持-printf,则可以尝试使用grep

mkdir backup; for folder in $(find . -type f -name '*.jpg' | grep -o "\(.*\)/" |sort |uniq); do cp -r --parents $folder backup; done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何查找包含具有给定扩展名的文件的文件夹

Bash:复制根/当前文件夹中具有相同扩展名的所有文件,但文件名包含某些字符串的文件除外

如何删除特定文件夹中具有特定扩展名的所有文件?

如何删除文件夹中所有具有特定扩展名的文件?

移动子文件夹中具有相同扩展名的所有文件

使用保留的文件夹树结构复制具有指定扩展名的文件

尝试将具有特定扩展名的文件从源文件夹复制到目标文件夹

如何在 Bash 中找到包含某些文件扩展名的所有文件夹?

在cmd中如何列出包含具有特定扩展名的文件的文件夹?

如何将包含具有特定扩展名的文件的文件夹移动到目标文件夹?

在具有特定扩展名的所有文件夹和子文件夹中运行命令

使用 PowerShell 重命名给定目录和子文件夹中没有扩展名的所有文件

循环浏览文件夹中具有不同文件扩展名的所有文件

根据父文件夹重命名每个文件时,仅复制具有特定扩展名的文件

如何删除大树中特定命名文件夹中具有特定扩展名的所有文件?

一次调用即可列出Windows文件夹中具有某些扩展名的所有文件

Windows 7-递归删除具有特定扩展名的所有文件+空文件夹

C# - 如何检查文件夹中的所有文件是否具有特定扩展名

将具有扩展名的Excel列表中的文件复制到其他文件夹

如何从多个文件夹复制带有文件扩展名的文件?

从资产文件夹获取仅具有.txt扩展名的文件的文件名

获取具有特定扩展名并在其文件夹中包含特定单词的文件?

Php:将扩展名附加到文件夹中没有扩展名的所有文件

当所有文件具有不同的扩展名时,如何将文件夹中所有文件的扩展名更改为一个公共扩展名?

文件复制到只有当文件已经存在目标文件夹。但源文件具有不同的文件扩展名

如何将一个文件夹中的所有文件复制到另一个文件夹并更改扩展名?

如何遍历文件夹中的文件以移动具有特定扩展名的每个文件

从所有子目录复制具有特定扩展名的所有文件

查看文件夹中是否包含某些带有某些扩展名的文件