Re: How to chdir using SFTP or SSH on Win32

[email protected] (Rob Dixon)
Newsgroups perl.beginners
Message-ID <[email protected]>
Sturdevant, Robert W Mr CTR USA AMC wrote:
> Hi list,
> 
> I asked this question a few days ago on the perl-win32-users list but
> still need some help. It seems what I need may not be possible.
> 
> I have a perl (5.6) SFTP client (Net::SFTP) that gets and puts files
> using either a full or relative path with the filename something like this:
> 
> $sftp->get( $remotename, $localname ); # where $remotename =
> '/Home/OUT/myfile.txt'
> 
> But I have a remote system with a custom server app that rejects the
> path and requires a chdir to the correct file location. To fetch a file
> I need to do something like this:
> 
> $sftp->chdir( $path );   #cd to the OUT folder
> $sftp->get( $shortname, $localname);   # get the file using only the
> file name
> 
> I see no way to do $sftp->chdir. Please advise if something similar is
> possible. I have tried many combinations of commands using SSH such as
> $ssh->cmd( 'cd $path' ) with no joy. $ssh->cmd() always seems to hang. TIA.

SSH doesn't support a cwd command - it is the job of the client to keep track of
where it is in the remote directory structure. You can establish the path to
your login directory by executing

  $sftp->do_realpath('.');

and after that you can specify either a path relative to that login directory or
an absolute path. The location of '.' never changes.

HTH,

Rob
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.