Primeiro, 'ls *'
está errado. O mesmo resultado pretendido pode ser alcançado usando apenas *
, como em:
tftp -m binary 192.168.1.2 -c put * target/
As expansões de curingas são processadas pelo seu shell antes de executar o comando, portanto, a maneira correta de expandir *
para uma lista de arquivos é simplesmente usar *
, nunca 'ls'
.
Em segundo lugar, o comando tftp put
pode carregar vários arquivos, mas só aceita um único diretório de destino ao fazer isso. Você não precisa especificar vários destinos e ele não funcionaria de qualquer maneira - tftp
não saberia onde os arquivos de origem terminam e os arquivos de destino começam. (Como dito anteriormente, os curingas são expandidos pelo seu shell, então tftp
receberia put file1 file2 file3
, não put *
.)
O misterioso :
é causado por ls
listando o conteúdo dos subdiretórios. Quando você executa ls *
, o shell na verdade executa ls file1 file2 dir1
(suponha que você tenha dois arquivos e um diretório). Em seguida, ls
imprime " file1
", " file2
", seguido de " dir1: (...all files in dir1...)
".