Как скопировать файлы с общим элементом в названии из одной папки в другую

Товарищи, нужен совет.
Задача:
Скопировать определённые файлы из известной папки в другую известную папку. Знаю точно название директорий и название файлов.
Загвоздка: файлов 50-100штук и у них разные названия. Однако, названия имеют общий элемент (например название таски) а остальное отличается. Просто копировать файлы по одному, постоянно редача название долго. Как можно ускорить процесс? (Я новичек)
Upd: в изначальной папке хранятся и другие файлы, копировать которые не надо
Подскажите плиз кто как делал бы)

Для решения задачи копирования определенных файлов из одной папки в другую можно использовать скрипты на Python или Bash. Оба варианта приведены ниже:

Python скрипт

import os
import shutil

# Укажите путь к исходной папке
source_folder = r"C:\путь\к\исходной\папке"

# Укажите путь к целевой папке
destination_folder = r"C:\путь\к\целевой\папке"

# Укажите общий элемент в названии файлов
common_element = "название_таски"

# Перебираем все файлы в исходной папке
for filename in os.listdir(source_folder):
    # Проверяем, содержит ли имя файла общий элемент
    if common_element in filename:
        # Формируем полные пути для исходного и целевого файлов
        source_file = os.path.join(source_folder, filename)
        destination_file = os.path.join(destination_folder, filename)
        
        # Копируем файл
        shutil.copy2(source_file, destination_file)
        print(f"Скопирован файл: {filename}")

print("Копирование завершено!")

Чтобы использовать этот Python-скрипт:

  1. Сохраните его в файл с расширением .py, например copy_files.py.
  2. Отредактируйте переменные source_folder, destination_folder и common_element, указав соответствующие пути и общий элемент в названии файлов.
  3. Запустите скрипт с помощью Python.

Bash скрипт

#!/bin/bash

# Укажите путь к исходной папке
source_folder="/путь/к/исходной/папке"

# Укажите путь к целевой папке
destination_folder="/путь/к/целевой/папке"

# Укажите общий элемент в названии файлов
common_element="название_таски"

# Перебираем все файлы в исходной папке, содержащие общий элемент
for file in "$source_folder"/*"$common_element"*; do
    # Проверяем, существует ли файл (это нужно, если нет совпадений)
    if [ -f "$file" ]; then
        # Получаем только имя файла без пути
        filename=$(basename "$file")
        
        # Копируем файл
        cp "$file" "$destination_folder/$filename"
        echo "Скопирован файл: $filename"
    fi
done

echo "Копирование завершено!"

Чтобы использовать этот Bash-скрипт:

  1. Сохраните его в файл, например copy_files.sh.
  2. Отредактируйте переменные source_folder, destination_folder и common_element, указав соответствующие пути и общий элемент в названии файлов.
  3. Сделайте скрипт исполняемым с помощью команды: chmod +x copy_files.sh
  4. Запустите скрипт: ./copy_files.sh

Оба скрипта выполняют одну и ту же задачу:

  1. Определяют пути к исходной и целевой папкам.
  2. Задают общий элемент в названии файлов.
  3. Перебирают файлы в исходной папке.
  4. Копируют файлы, содержащие общий элемент в названии, в целевую папку.
  5. Выводят сообщения о скопированных файлах и завершении процесса.

Выбор между Python и Bash зависит от вашей операционной системы, уровня комфорта с каждым языком и конкретных требований задачи. Python может быть более удобным для Windows и для тех, кто знаком с этим языком, в то время как Bash отлично подходит для Unix-подобных систем и может быть более эффективным для работы с файловой системой.