scp все файлы, заканчивающие '-123.jpg' - рекурсия, пробелы, подстановочные знаки …

Существует слишком много продолжения для меня получить мою голову noobie здесь. Я желаю загрузить все файлы, которые заканчивают -123.jpg от множества вложенных каталогов на удаленном сервере. Некоторые из этих каталогов имеют пробелы на их имена. Я думаю, что команда должна быть вроде:

scp -r user@server:/path/to/parent\ directory/*/*/*123\.jpg ./

… , где "parent\каталог" имя каталога с пространством, и указанный путь идет настолько глубоко, как это может, прежде чем это отколется к различным подкаталогам, например, dir/sub dir / [uniquely_id] файл -123.jpg. (Обратите внимание, что эти подкаталоги часто содержат пробелы также, должен то влияние * подстановочный знак),

Я не получаю 'соответствия', возвращенного для этого, или 'никакого такого файла или каталога', если я влезаю в выход пространства. Я думаю поэтому, что это - рекурсия или подстановочный знак, который я имею неправильно.

Заранее спасибо.

1
задан 01.11.2010, 20:50

2 ответа

При недостатке в расположении сервера тестирования, которое я не знаю, работает ли следующая команда на самом деле, но я думаю, что rsync был бы лучше, чем scp в этом случае, поскольку можно указать в - и исключить шаблоны. Что-то как:

rsync -arvzSH  --include "*123.jpg" --exclude "*" user@server:/path/to/parent\ directory/ /path/to/target directory/

может работать. Но Вы лучше проверяете rsync документацию дважды.

3
ответ дан 12.12.2019, 10:38

Выход имени файла с scp хитер; Ваши аргументы подробно остановились (ре) на удаленной стороне. Символы "Interesting" должны быть двойные заключенный в кавычки, для предотвращения специального вручения локальной оболочкой и удаленным. Я ожидал бы, что оба следующее будут работать на Вас:

scp user@server:'/path/to/parent\ directory/*/*/*123.jpg' ./
scp user@server:'"/path/to/parent directory"/*/*/*123.jpg' ./

Если это сбивает с толку, rsync довольно прост в использовании (как lothar упоминания), и tar передачи по каналу или cpio через ssh довольно легки также.

ssh user@server 'cd /path/to/parent\ directory;
                 find -name "*123.jpg" -print0 | cpio -0 -o' |
    cpio -i -d -v
1
ответ дан 12.12.2019, 10:38

Теги

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