将子目录中的所有 *.mkv 复制到父目录

将子目录中的所有 *.mkv 复制到父目录

大致来说,我在 Linux 服务器上设置了一个如下文件夹:

/节目/season01/show01/shows01e01.mkv
/节目/season02/show01/shows02e01.mkv
/节目/season03/show01/shows03e01.mkv

我想消除文件夹...我想将*.mkv文件复制到/show/目录中...

有人可以帮我解决这个问题吗?

答案1

Alex 的回答很好。以下是几种替代方法:

  1. 查找 + xargs:

    find /show -name "*.mkv" -print0 | xargs -0 -Imkv cp mkv /show/

  2. 查找 + 并行:

    find /show -name "*.mkv" -print0 | parallel -0 -j+0 cp {} /show/

使用的唯一有趣的事情平行线而不是find/exec它可以并行执行多个命令。这些-j+0参数将使其一次启动与 CPU 核心数量一样多的作业。如果此操作完全受磁盘限制,这可能不是特别有用,但它可能会加快复制大量文件的速度。

答案2

find /show -name "*.mkv" -exec cp {} /show/ \;会起作用

相关内容