登录远程计算机

时间:2011-02-23 09:20:58

标签: linux shell

是否可以通过shell脚本登录到远程计算机的特定文件夹: 而不是ssh然后cd。我可以在一个命令中完成吗? 是否可以一次性通过scp将文件复制到远程计算机的两个不同文件夹中?

3 个答案:

答案 0 :(得分:1)

您可以将cp命令传递给ssh,如下所示:

ssh user@host "cp /path/to/folder1/file /path/to/folder2"

或与cd合并:

ssh user@host "cd /path/to/folder1; cp file /path/to/folder2"

答案 1 :(得分:1)

我认为没有真正的解决方案。如果你的shell是bash,你可以尝试ssh user@host bash -c "cd /tmp; bash -i"。这看起来有点像它可以工作,但你很快就会发现它并没有真正起作用。 (尝试调用vi之类的编辑器,你会看到。)

您也可以将cd /tmp放入远程端的~/.bashrc。这样,ssh user@host可以满足您的要求。但我想你想能够去不同的目录,所以这也不会飞。

我认为最好的方法是方便输入cd命令,例如使用别名。然后输入就更少了。

答案 2 :(得分:1)

第一个问题最简洁的方法是期待:

#!/usr/local/bin/expect
spawn ssh user@host
expect -re {\$ $} ;# adjust to suit your prompt
send "cd some/dir\r"
interact

我不清楚您的第二个问题:您是否有2个要复制到本地计算机的远程文件,或者是否要将文件从一个远程目录复制到另一个远程目录?

scp user@host:/path/to/file1 user@host:/path/to/file2 .
ssh user@host "cp /path/to/file1 /path/to/folder2/"