Копировать файлы из не указанных подкаталогов номеров

У меня есть дерево каталогов следующим образом

/
--/Directory1
--/Directory2
-----/SubDir1
-----/SubDir2

Каждый из них имеет файл с расширением .mp4, который я ищу, и хочу перейти к другой папке. Я пробовал:

CP -RV ./*/*.mp4 ~ / foo

, однако, что только получает файлы из Directory1 и Directory2, и если я просто ищу * .mp4, я только ищите только корневой каталог.

Я хотел бы, чтобы вы знали, я на самом деле не делаю это в моем корневом каталоге, это просто пример, пожалуйста, не снисходительные комментарии, если я не пропустил что-то очень простое.

0
задан 22 March 2021 в 03:38

1 ответ

Если вы используете оболочку, которая поддерживает рекурсивное глобубинг, вы можете включить, чтобы EX.

shopt -s globstar        # bash

Затем используйте

cp -v ./**/*.mp4 ~/foo

( -R , здесь не подходит, предполагая, что . MP4 являются обычными файлами ). В качестве альтернативы, используйте Найти для рекурсивного происхождения:

find . -type f -name '*.mp4' -exec cp -vt ~/foo {} +

Метод Globstar потерпит неудачу, если количество совпадений достаточно велико; Метод метод должен работать независимо.

3
ответ дан 1 April 2021 в 23:01

Другие вопросы по тегам:

Похожие вопросы: