13

This one uses Samba:

 $ ls smb://192.168.5.4/wdtvlivehub/abc
 ls: cannot access smb://192.168.5.4/wdtvlivehub/abc: No such file or directory

I somehow managed to do it by;

  1. Browsing to the remote directory. (pcmanfm 0.9.9)
  2. Opening the current folder in a terminal.
  3. Executing pwd to get /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4
  4. Doing ls /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4 worked.

..What would be a more elegant way?

2
  • Is mounting the remote filesystem an option?
    – beatgammit
    Sep 18, 2011 at 21:05
  • Yep, it can be. Sep 18, 2011 at 21:15

2 Answers 2

5

Your current method of using ~/.gvfs/ is fine, but you don't need pcmanfm for that – you can use gvfs-mount to connect to the share. Additionally, tools such as gvfs-ls and gvfs-cp will accept your smb:// URI.

$ gvfs-mount smb://HOST/SHARE/

$ gvfs-ls smb://HOST/SHARE/

In recent gvfs versions the location is $XDG_RUNTIME_DIR/gvfs/ (aka /run/user/$UID/gvfs/), and the subdirectory names have become more machine-readable:

$ ls /run/user/$UID/gvfs/smb-share:server=HOST,share=SHARE/

In older versions:

$ ls ~/.gvfs/"SHARE on HOST"/

(Remember to quote spaces within path names.)


Specifically for Samba, you can use the smbclient program, or mount the share on the VFS layer by using mount -t cifs. (The latter is, unfortunately, limited to root.)

$ smbclient //host/share

# mount -t cifs //host/share /mnt

(For other kinds of filesystems, such as SFTP and FTP, sshfs and curlftpfs exist respectively.)

5
  • I mentioned pcmanfm because that is most probably how I will get to the folder before executing it with the script. gv-ls seems to be exactly what I was looking for, though. Looks like it could even replace ls for local directories for the sake of consistency. Sep 18, 2011 at 21:28
  • It's worth clarifying that "gvfs-ls smb://host/share/" works as described without the need to mount the drive using gvfs-mount first. In other words, the commands in the first code block don’t all need to be used to achieve your desired outcome.
    – John T
    Feb 18, 2016 at 6:50
  • @JohnT: Must have been a coincidence. I usually get The specified location is not mounted.
    – user1686
    Feb 18, 2016 at 11:47
  • @grawity - I've usually already browsed to the location in Nautilus or similar and authenticated that way, that might have something to do with it.
    – John T
    Feb 18, 2016 at 11:50
  • @JohnT: Yes, Nautilus uses the same GVFS, and GTK automatically mounts gvfs locations you're trying to access. If the share shows up in Nautilus' side pane, then it is 'mounted' right now.
    – user1686
    Feb 18, 2016 at 11:55
13

You can use the command smbclient, e.g.:

smbclient -N //192.168.5.4/wdtvlivehub/abc -c ls
1
  • 5
    Great, but how can I achieve the same output as with regular ls (no columns nor formatting, just a list of files)? It's important because I want to pipe the output to another command. Sep 18, 2011 at 21:20

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.