linux - 将所有 .tar 和 .tar.bz2 文件系统从所有子目录复制到另一个目录
问题描述
想象一下,我想将所有子目录中的所有 .tar 和 .tar.bz2 扩展文件复制到另一个目录中的目录中的子目录中有很多子目录。
我用了
$find /home/apple/mango -name *.tar -exec cp {} ./kk \;
但它只从子目录复制一次并停止,它不会找到其他子目录中的文件或进入子目录并找到它们。我想递归地做
解决方案
您可以使用:
find /home/apple/mango -name '*.tar*' -execdir cp {} /full/path/to/kk \;
find
请注意如何引用名称模式以避免在命令执行之前进行 shell 扩展。
在没有引用的情况下,*.tar
将扩展到file.tar
当前目录中存在的一些内容,并find
停在那里,因为file.tar
在子目录中找不到。通过引用 glob 模式,我们确保find
命令获取文字模式来搜索子目录。
推荐阅读
- c# - C#/UWP 按钮选择后隐藏 NavigationView
- python - QTableView:单击选择一个单元格
- python - 用于在 Python 中将幽灵行附加到现有数据帧的优化算法
- regex - 如何在 Matlab 中使用 regexprep 将文本中的许多匹配替换为不同的值
- mongodb - 嵌入另一个包含唯一键的模式的 Mongoose 模式
- salesforce - 在 Salesforce APEX 中动态访问字段
- regex - 使用Regex,python删除字符串中的所有数字
- ruby - 如果所有子模块都标记为完整轨道,则自动将课程标记为完整轨道 5
- php - 如何在 PHP 中编译网页代码?
- c++ - C++ 等效于 Java 的 andThen() 函数来组合新函数