首页 > 解决方案 > 将所有 .tar 和 .tar.bz2 文件系统从所有子目录复制到另一个目录

问题描述

想象一下,我想将所有子目录中的所有 .tar 和 .tar.bz2 扩展文件复制到另一个目录中的目录中的子目录中有很多子目录。

我用了

$find /home/apple/mango -name *.tar -exec cp {} ./kk \;

但它只从子目录复制一次并停止,它不会找到其他子目录中的文件或进入子目录并找到它们。我想递归地做

标签: linuxbashshell

解决方案


您可以使用:

find /home/apple/mango -name '*.tar*' -execdir cp {} /full/path/to/kk \;

find请注意如何引用名称模式以避免在命令执行之前进行 shell 扩展。

在没有引用的情况下,*.tar将扩展到file.tar当前目录中存在的一些内容,并find停在那里,因为file.tar在子目录中找不到。通过引用 glob 模式,我们确保find命令获取文字模式来搜索子目录。


推荐阅读