bash - 通过 grep shell 脚本从子文件夹复制文件
问题描述
我想编写一个 shell 脚本来执行以下操作:我有一个包含许多子文件夹的文件夹。这些子文件夹中的每一个都有一个 *.gz 文件和一些我不需要的其他文件。我想将所有 .gz 文件移动到一个名为 required_files 的新子文件夹中(我已经创建了这个子文件夹)。所以我做了以下事情:我去了所有子文件夹和 cp / .gz > needed_files/. 的父文件夹,但这不起作用。你能建议我应该做什么吗?
解决方案
grep
在这里无关紧要。使用find
:
find . ! \( -type d -name needed_files -prune \) -type f -name '*.gz' \
-exec echo mv -t needed_files {} +
-exec
POSIX等价于
-exec sh -c 'echo mv "$@" needed_files' _ {} +
如果它的输出看起来不错,请删除echo
.
顺便说一句,我注意到标题说复制,但你也说我想搬家,所以决定你到底想做什么,让我知道,这样我就可以编辑我的答案。
推荐阅读
- arrays - 数组下标超出范围在 SAS 中的行错误
- android - 如何检查字符串是否只有一个指定字符?
- r - 替换 htmltools::tag 的属性值
- c# - 学习 .net core 3.1 - 第一次尝试使用 API webservice
- r - 为什么汇总函数不会出错?
- c++ - 有没有办法在已建立的 for 循环框(C++)中创建菜单
- c++ - Hackerrank重复字符串,高值不在C++中打印
- mongodb - 显示基于单个 mongo db 记录中数组值的派生 mongo 文档
- angular - 在不相关的 Angular 组件之间共享数据
- php - 使用 npm 在 css 中错误的目录位置