Bash — слишком длинный список аргументов

Ваши возможности здесь довольно ограничены. Виджет Icon Tasks для KDE имеет эту функцию, но единственное известное мне приложение, использующее его функцию прогресса, — это Dolphin (файловый менеджер ). Надеюсь, это расширится до нативных реализаций DE по какому-то стандарту, поскольку это одна из немногих вещей, которых мне не хватает в Windows.

6
25.10.2019, 12:50
1 ответ

Рассмотрите возможность переноса всего каталога вместо отдельных файлов:

scp -r username@remote:/remote_path /local_path/

Если это приведет к передаче слишком большого количества файлов, и вы действительно хотите передавать только файлы, имена которых заканчиваются на .jsonв одном каталоге, вы можете рассмотреть rsync(, который имеет лучшие возможности для фильтрации передаваемых данных.):

rsync -av --include='*.json' --exclude='*' username@remote:/remote_path/ /local_path/

При этом копируются только файлы, имена которых заканчиваются на .json, но игнорируются другие имена. Здесь необходимо завершение /на источнике.

Опция -aпозволяет передавать также метаданные файла (временные метки, в основном )и заставляет rsyncрекурсивно спускаться в подкаталоги (, но это ограничено --excludeвыше ), в то время как -vдля подробной операции.

Третий вариант — создать tarархив удаленного каталога или, по крайней мере, файлов, которые вы хотите передать, а затем scpэтот архив перенести в локальную систему. На самом деле, это можно было бы сделать за один раз с ssh, имитируяscp -r:

ssh username@remote 'tar -c -f - -C /remote_path.' | tar -x -f - -C /local_path
13
27.01.2020, 20:25

Теги

Похожие вопросы