Прежде всего, `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...)
».