How do I change directories using Paramiko?

烈酒焚心 提交于 2019-11-28 18:36:25
Mike Ryan

This guy had it figured out: http://www.vertigrated.com/blog/2010/02/python-remote-ssh-with-paramiko/

You just have to send multiple commands with one exec_command, such as:

myssh.exec_command('cd ..; pwd')

Then stdout.readlines() will return the directory that you changed to.

As of version 2.1+ the method to change directories is sftp.chdir('path/to/directory')

Well paramiko creates an instance of shell and all the commands that you wish to execute in paramiko have to be given in that instance of shell only.

For example: Let us say I have some folder in the directory I am in.

folder1
folder2
folder3

Now if I want to cd into folder 1 and make a directory there what I would do is:

ssh.exec_command('cd folder1;mkdir folder4')

if you write it like:

ssh.exec_command('cd folder1')
ssh.exec_command('mkdir folder4')

you would get the result like

folder1
folder2
folder3
folder4

as those were two different instances of the shell and would be independent in their function.

CodeMode

A bit late with this one, but its possible to 'invoke_shell' and write to the standard input through a file.

Please see: https://stackoverflow.com/a/6203877/1861353

Seems a little bit heavyweight since you can just ';'.join(cmdlist) and send to the exec_command.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!