Методы копирования файлов с определенной даты в Linux: примеры и код

Чтобы скопировать файлы определенной даты в Linux, вы можете использовать различные методы. Вот несколько примеров кода:

Способ 1: использование команды find

find /path/to/source -type f -newermt "2022-01-01" -exec cp {} /path/to/destination \;

Эта команда находит в каталоге /path/to/sourceвсе файлы, выпущенные позднее 1 января 2022 года, и копирует их в каталог /path/to/destinationкаталог.

Метод 2: использование rsync

rsync -av --ignore-existing --update --files-from <(find /path/to/source -type f -newermt "2022-01-01") /path/to/destination

Команда rsyncс указанными параметрами копирует только файлы новее, чем 1 января 2022 г., из каталога /path/to/sourceв каталог >/путь/к/назначениякаталог.

Метод 3. Использование tar

find /path/to/source -type f -newermt "2022-01-01" -print0 | tar -czvf files.tar.gz --null -T -

Эта команда находит все файлы старше 1 января 2022 г. в каталоге /path/to/sourceи создает сжатый tar-архив с именем files.tar.gzсодержащий эти файлы.

Метод 4. Использование cp и find

find /path/to/source -type f -newermt "2022-01-01" -exec cp --parents {} /path/to/destination \;

Эта команда находит все файлы старше 1 января 2022 г. в каталоге /path/to/sourceи копирует их в каталог /path/to/destination., сохраняя структуру каталогов.

Метод 5: использование скрипта Python

import os
import shutil
source_dir = "/path/to/source"
destination_dir = "/path/to/destination"
date = "2022-01-01"
for root, dirs, files in os.walk(source_dir):
    for file in files:
        file_path = os.path.join(root, file)
        if os.path.getmtime(file_path) >= os.path.getmtime(date):
            destination_path = os.path.join(destination_dir, os.path.relpath(file_path, source_dir))
            os.makedirs(os.path.dirname(destination_path), exist_ok=True)
            shutil.copy2(file_path, destination_path)

Этот скрипт Python рекурсивно проходит через исходный каталог, проверяет дату изменения каждого файла и копирует новые файлы в целевой каталог, сохраняя структуру каталога.