Поиск по сайту:

Как рекурсивно копировать файлы по расширению


Если вам интересно, как рекурсивно копировать файлы с определенным расширением (например, .txt, .php, .java), следующее руководство могу помочь тебе. Под рекурсивным копированием файлов я подразумеваю, что вы копируете файлы, расположенные в текущем каталоге, а также его подкаталоги, в другое место с такой же структурой каталогов.

Ваша первая (неудачная) попытка может заключаться в использовании команды cp с опцией -r.

$ cp -r *.txt /path/to/destdir

Однако приведенная выше команда скопирует файлы *.txt только в текущий каталог верхнего уровня, но не ни в один из его подкаталогов. Так что это не правильный способ сделать это.

Правильный способ рекурсивного копирования файлов — использовать команду cpio, которая представляет собой инструмент Linux, копирующий файлы в архивы и из них. Приведенная ниже команда демонстрирует, как копировать файлы .txt из одного дерева каталогов в другое.

$ find /path/to/srcdir -name '*.txt' | cpio -pdm /path/to/destdir
  • Параметр -p включает операцию рекурсивного копирования.

  • Параметр -d создает ведущие каталоги там, где это необходимо.

  • Параметр -m сохраняет предыдущее время изменения файла, пока файлы копируются в место назначения.

Статьи по данной тематике: