Назад | Перейти на главную страницу

скопируйте все * .mkv из подкаталогов в родительский каталог

Грубо говоря, у меня на сервере Linux настроена такая папка:

/show/season01/show01/shows01e01.mkv
/show/season02/show01/shows02e01.mkv
/show/season03/show01/shows03e01.mkv

Я хочу удалить папки .... Я хочу скопировать *.mkv файлы в /show/ каталог ...

Может ли кто-нибудь помочь мне с этим?

find /show -name "*.mkv" -exec cp {} /show/ \; сделаю трюк

Ответ Алекса в порядке. Вот несколько альтернативных способов сделать это:

  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 аргументы заставят его запустить столько заданий одновременно, сколько ядер процессора. Это может быть не особенно полезно, если эта операция полностью привязана к диску, но потенциально может ускорить копирование большого количества файлов.