首页 > 解决方案 > 通过 grep shell 脚本从子文件夹复制文件

问题描述

我想编写一个 shell 脚本来执行以下操作:我有一个包含许多子文件夹的文件夹。这些子文件夹中的每一个都有一个 *.gz 文件和一些我不需要的其他文件。我想将所有 .gz 文件移动到一个名为 required_files 的新子文件夹中(我已经创建了这个子文件夹)。所以我做了以下事情:我去了所有子文件夹和 cp / .gz > needed_files/. 的父文件夹,但这不起作用。你能建议我应该做什么吗?

标签: bashshellgrep

解决方案


grep在这里无关紧要。使用find

find . ! \( -type d -name needed_files -prune \) -type f -name '*.gz' \
     -exec echo mv -t needed_files {} +

-execPOSIX等价于

-exec sh -c 'echo mv "$@" needed_files' _ {} +

如果它的输出看起来不错,请删除echo.

顺便说一句,我注意到标题说复制,但你也说我想搬家,所以决定你到底想做什么,让我知道,这样我就可以编辑我的答案。


推荐阅读