У меня есть машина с Windows 7, которая подключена к плате прототипирования linux через последовательное соединение.
Теперь я хочу передавать файлы в Linux из Windows. На машине Linux нет дополнительного сетевого подключения, кроме последовательного, и программы rz
, sz
, screen
и tmux
не установлены. Более того, serial
python lib также не установлена.
Теперь я подумал, что могу открыть PuTTY в Windows, подключиться к машине Linux. Затем выполнить nohup cat /dev/ttyMDF2 > receiving-file
и затем закрыть PuTTY в Windows, чтобы снова открыть последовательный порт для подключения. Затем запустите copy test.file /B COM4: /B
на машине Windows, чтобы отправить файл. К сожалению, на машине Linux файл остается пустым.
Как я могу успешно передавать файлы на машину Linux через последовательное соединение?
Спасибо!
Для небольшого текстового файла cat > somefile
и используйте функцию вставки терминала, чтобы вставить файл. Нажмите ^D
в конце.
Для двоичных файлов вы, вероятно, захотите сначала закодировать их в base64, а затем декодировать на удаленном компьютере с помощью base64 -d somefile.encoded > somefile
. Предположим, у вас есть base64
. Вам придется каким-то образом выполнить кодирование на стороне Windows.
Для больших файлов вставка в терминал может не работать, поэтому вам понадобится что-то, предназначенное для чтения файлов. Похоже, что в Putty нет функции для сброса файла в соединение, которая может быть у какой-то другой терминальной программы. Хотя инструмент командной строки plink
, который поставляется вместе с Putty, имеет параметр -m
для чтения «команд» из файла. Кажется, здесь работает. С этим foo.txt
:
cat > foo.out <<EOF
adsf
EOF
Выполнение plink -m foo.txt itvirta@somehost
создало файл. (По SSH, но не должно быть причин, по которым последовательное соединение будет другим.) С base64
вы можете пропустить кошку:
base64 -d <<EOF > outputfile (base64 encoded data...) EOF