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