如何`ls远程文件夹?


10

这个使用Samba:

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

我设法做到了;

  1. 浏览到远程目录。(pcmanfm 0.9.9
  2. 在终端中打开当前文件夹。
  3. 执行pwd得到/home/myuser/.gvfs/wdtvlivehub on 192.168.5.4
  4. ls /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4工作。

..会有什么更优雅的方式?


是否可以选择安装远程文件系统?
Beatgammit

是的,可以。
octosquidopus 2011年

Answers:


5

您当前的使用~/.gvfs/方法很好,但是您不需要pcmanfm,您可以使用它gvfs-mount 来连接到共享。此外,诸如gvfs-ls和的工具gvfs-cp将接受您的smb:// URI。

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

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

在最新的gvfs版本中,该位置为$XDG_RUNTIME_DIR/gvfs/(aka /run/user/$UID/gvfs/),并且子目录名称变得更易于阅读:

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

在旧版本中:

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

(请记住在路径名中用引号引起来。)


专门针对Samba,您可以使用该smbclient程序,也可以使用将该共享安装在VFS层上mount -t cifs。(不幸的是,后者仅限于root用户。)

$ smbclient //host/share

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

(对于其它类型的文件系统,如SFTP和FTP,的sshfscurlftpfs存在分别)。


我之所以提到pcmanfm,是因为这很可能是在使用脚本执行该文件夹之前我将如何访问该文件夹。gv-ls似乎正是我想要的。看起来ls为了一致性,它甚至可以代替本地目录。
octosquidopus 2011年

值得澄清的是,“ gvfs-ls smb:// host / share /”的工作方式如前所述,而无需先使用gvfs-mount来安装驱动器。换句话说,不需要全部使用第一个代码块中的命令来获得所需的结果。
约翰T

@JohnT:一定是巧合。我通常会得到The specified location is not mounted
user1686 '16

@grawity-我通常已经浏览到Nautilus或类似位置,并以这种方式进行了身份验证,这可能与它有关。
约翰T

@JohnT:是的,Nautilus使用相同的GVFS,而GTK会自动挂载您尝试访问的gvfs位置。如果共享显示在Nautilus的侧窗格中,则表示它现在已“挂载”。
user1686 '16

12

您可以使用命令smbclient,例如:

smbclient -N //192.168.5.4/wdtvlivehub/abc -c ls

4
太好了,但是如何获得与常规输出相同的输出ls(没有列也没有格式,只是一个文件列表)?这很重要,因为我想将输出传递给另一个命令。
octosquidopus 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.