如何将本地文件上传到通过 SSH 运行的远程计算机lsh
?互联网上有足够多的示例,ssh
但我有兴趣使用lsh
.
以下是我对 MP3 文件的尝试:
$ cat file.mp3 | lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local "cat > file.mp3"
$ lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local "cat > file.mp3" < file.mp3
$ tar -c file.mp3 | lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local "tar -x"
所有这些都会产生一个与我发送的文件完全相同但完全为空的文件。
$ ls -l file.mp3
-rwxr-xr-x 1 pi pi 0 Feb 24 06:55 file.mp3
答案1
从另一个角度来看文档我发现我忽略了-f -
。-f
指示tar
使用存档文件。-
分别代表标准输入或标准输出。所以,这有效:
$ tar -cf - file.mp3 | lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local "tar -xf -"
上传单个文件,再举一个例子GNU lsh 的 Texinfo 手册第 3.5 节。它使用输入和输出重定向并且不需要tar
.在上面的例子中,它将是:
$ lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local '>file.mp3' <file.mp3
但是,这只会在我的系统上创建一个空文件
$ >testfile2 <testfile1
我需要添加cat
:
$ lsh -l pi -c aes256-ctr --sloppy-host-authentication raspberrypi.local 'cat >file.mp3' <file.mp3