Is there a way to do a remote "ls" much like "scp" does a remote copy in a standard linux shell?

  • I can see it'd be nice to do this, but why not just SSH in and do an ls? – SpacemanSpiff Mar 2 '11 at 12:54
  • @SpacemanSpiff - So you can script it. That's how I got to this page. – wobbily_col Aug 27 '14 at 13:02

You could always do this:

ssh user@host ls -l /some/directory

That will SSH to the host, run ls, dump the output back to you and immediately disconnect.

  • 2
    ... if you have real shell access. Some systems have a special shell which will only accept certain scp and rsync calls, maybe sftp as well, and that's it. – glglgl Jun 6 '14 at 22:11
  • how would you alias this to, say, "rls" ? – Walrus the Cat Oct 18 '14 at 16:24
  • 2
    @WalrustheCat alias rls="ssh user@host ls -l" Restart your shell and rls /some/directory should work. – chishaku Oct 10 '15 at 9:17
  • The only problem with this is that file not found returns an error code,when my reason for doing it is precisely why I want to call ls. – Steve Cohen Nov 28 '17 at 18:54
  • Not following @SteveCohen. Are you wanting the error code from the remote ls? If so, $? contains it right after you execute the command. (e.g. it returns 2 if I run this [locally or remotely] on a file that is not found) – Corey S. Nov 28 '17 at 23:42

To list all files in a directory:

rsync host.name.com:directory/path/'*'

For something like find directory/path -ls

rsync -r host.name.com:directory/path
  • If rsync is not installed on the host, then you get something like bash: rsync: command not found. I guess this implies it's using SSH in the background? – mwfearnley Sep 25 '15 at 10:23
  • Note the the format is similar to ls -l. On my system, it doesn't look like there is an option to just list the files. – Jonathan May 3 '16 at 11:37

For all coming via google to this question because they are looking for a way to list remote files but can not access the remote server via ssh (common case for backup servers) you could use 'sftp'.


sftp username@hostname.xyz
cd somedir

Start an interactive session in a specific remote directory:

sftp [user@]host[:dir]

Yes. SSH and do an ls:

ssh host ls /path

You could easily script this to be more flexible, or use the host:path syntax scp uses.


I find my most frequent use of this is to get the ls result, a simple list of files without all the permissions and dates and such, and keep it in a local file.

{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt

You can run anything you want within the quotes. All output ends up in your local text file. Or if you want to run a big nasty script on the server and capture all of its output, even errors:

{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
  • 1
    In the 2nd code line, the { } are not needed. – glglgl Jun 6 '14 at 22:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.