Я пытаюсь TFTP кучу файлов

tftp -m binary 192.168.1.2 -c put file1 target/file1

Я пытался использовать расширение строки CMD, таких как

tftp -m binary 192.168.1.2 -c put `ls *` target/`ls *`

но это, похоже, не работает, после цели ставится символ «:».

Есть ли быстрый способ расширить этот вид материала?

Я хочу повторно использовать значения, полученные в первом расширении, в следующем.

1 ответ1

4

Прежде всего, `ls *` не так. Тот же намеченный результат может быть достигнут с помощью просто * , как в:

tftp -m binary 192.168.1.2 -c put * target/

Расширения с подстановочными знаками обрабатываются вашей оболочкой перед выполнением команды, поэтому правильный способ расширения * до списка файлов - просто использовать *, а не `ls` .


Во-вторых, команда tftp put может загружать несколько файлов, но при этом она принимает только один каталог назначения . Вам не нужно указывать несколько целей, и все равно это не будет работать - tftp не будет знать, где заканчиваются исходные файлы и начинаются целевые файлы. (Как говорилось ранее, подстановочные знаки расширяются вашей оболочкой, поэтому tftp получит put file1 file2 file3 , а не put * .)


Загадочное : вызвано тем, что ls перечисляет содержимое подкаталогов. Когда вы запускаете ls * , оболочка фактически запускает ls file1 file2 dir1 (предположим, у вас есть два файла и каталог). Затем ls печатает « file1 », « file2 », а затем « dir1: (...all files in dir1...) ».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .