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