Используйте rclone copy, чтобы загрузить файлы без сохранения структуры папок.

Вопрос или проблема

Я загружаю несколько файлов с помощью этой команды rclone:

rclone copy --files-from files.txt / dropbox:main -P

rclone copy --files-from files.txt / dropbox:main -P --no-traverse

Содержимое files.txt:
/updates/file1
/updates/file2

При выполнении вышеуказанной команды загружается структура папок:
/main/updates/file1
/main//updates/file1

Моя цель – загрузить только файлы в папку main без создания такой же локальной структуры:
/main/file1
/main/file2

Ответ или решение

Для выполнения задачи по загрузке файлов в Dropbox с помощью rclone без сохранения структуры папок, вы можете использовать дополнительные параметры командной строки, которые помогут добиться желаемого результата. Давайте подробно рассмотрим, как это сделать, а также разберем вашу исходную команду.

Анализ Проблемы

Ваши текущие команды:

rclone copy --files-from files.txt / dropbox:main -P

и

rclone copy --files-from files.txt / dropbox:main -P --no-traverse

при загрузке файла создают деревообразную структуру в директории main, что для вас неприемлемо. В вашем files.txt указаны:

/updates/file1
/updates/file2

Как результат, после выполнения вышеуказанных команд в main загружаются файлы по следующему пути:

/main/updates/file1
/main/updates/file2

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

Решение

Чтобы загрузить файлы без сохранения локальной структуры, вы можете использовать rclone copy с параметром --transform, который позволяет изменить путь файла при загрузке. Вот как можно это реализовать:

  1. Создание нового файла files.txt с относительными путями:

    Измените files.txt, чтобы в нем указывались только имена файлов без путей. Например:

    file1
    file2
  2. Использование команды rclone copy с параметром --transform:

    Выполните следующую команду:

    rclone copy --files-from files.txt /updates dropbox:main -P --transform 's|^|main/|'

    В этом случае:

    • --files-from files.txt указывает, какие файлы необходимо скопировать.
    • /updates — это исходная директория, с которой будет производиться копирование файлов.
    • dropbox:main — это целевая директория в Dropbox.
    • --transform 's|^|main/|' изменяет путь загружаемого файла, чтобы каждый файл помещался непосредственно в папку main.

Альтернативный Метод: Использование --include и --exclude

Если вы хотите скопировать файлы определенного типа или по другим критериям, вы можете использовать параметры --include и --exclude:

rclone copy /updates dropbox:main --include '*.file_extension' -P

Замените file_extension на реальное расширение ваших файлов.

Заключение

Использование команды rclone copy вместе с параметрами --transform, --files-from и учитывая формат ваших путей в files.txt, позволит вам загрузить файлы в указанную директорию без сохранения вложенной структуры. Таким образом, файлы будут размещены в dropbox:main в соответствии с вашими требованиями.

Обязательно протестируйте каждую команду на небольшом наборе данных для проверки правильности работы перед массовой загрузкой. Успехов в вашей работе с rclone!

Оцените материал
Добавить комментарий

Капча загружается...