How do I change directories using Paramiko?

Drush commands not executing using Paramiko

I posted the above question regarding a persistent error message that I receive using Paramiko. I do not think it is related to my next question, but it might be.

I can successfully connect to my server via SSH using Paramiko. I can execute commands like ls or pwd. What I can't seem to do is change directories. I can send the command "cd .." for example, but when I follow up with "pwd" it shows that I haven't changed directories. It just lists the initial directory I am in when I log in.

>>> stdin, stdout, stderr = myssh.exec_command("pwd")
>>> stdout.readlines()
>>> stdin, stdout, stderr = myssh.exec_command("cd ../")
>>> stdout.readlines()
>>> stdin, stdout, stderr = myssh.exec_command("pwd")
>>> stdout.readlines()

Am I misunderstanding what is going on here? Should I not be able to change directories? Or if I can, should I be doing it in some other way than using exec_command?


This guy had it figured out:

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.


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


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

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

Please see:

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

Need Your Help

How to get index of an item in an array

iphone xcode nsmutablearray

I am having array called stored and I want to access their indexes so that I can select them individually to do my operations.

What does aspectj-weaver.jar do?

java jar dependencies aspectj

What does aspectj-weaver.jar do? What are its common uses?