内联 SSH 命令

Ahm*_*man 16 ssh

是否可以执行简单的内联样式 SSH 命令,例如:

ssh foo@bar.com { cd foo/bar && rm *.foobar }
Run Code Online (Sandbox Code Playgroud)

Sve*_*ven 28

如果您想cd foo/bar && rm *.foobar在远程机器上执行,只需执行

ssh foo@bar.com  'cd foo/bar && rm *.foobar'
Run Code Online (Sandbox Code Playgroud)

并看到man ssh...

ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D
[bind_address:]port] [-e escape_char] [-F configfile]
[-i identity_file] [-L   [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-R
[bind_address:]port:host:hostport] [-S ctl_path] [-w tunnel:tunnel
[user@]hostname [command]
Run Code Online (Sandbox Code Playgroud)

你想要的部分:

ssh [user@]hostname [command]
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,您也可以使用这种方法对 STDIN 和 STDOUT 进行管道传输 - 就在前几天,我通过 ssh 使用 DD 制作了远程机器的高清图像。 (2认同)

Jin*_*Liu 9

风格一: ssh user@host 'embedded command'

样式 2:ssh user@host " $(cat cmd.txt) "
cmd.txt 是包含位于本地计算机上的远程命令的文件


Goe*_*oez 7

是的 :

ssh foo@bar.com 'cd foo/bar && rm *.foobar '
Run Code Online (Sandbox Code Playgroud)