Вопрос или проблема
Я загружаю несколько файлов с помощью этой команды 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
, который позволяет изменить путь файла при загрузке. Вот как можно это реализовать:
-
Создание нового файла
files.txt
с относительными путями:Измените
files.txt
, чтобы в нем указывались только имена файлов без путей. Например:file1 file2
-
Использование команды
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
!