Comment `ls` un dossier distant?

10

Celui-ci utilise Samba:

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

J'ai réussi à le faire en quelque sorte;

  1. Navigation vers le répertoire distant. ( pcmanfm 0.9.9 )
  2. Ouverture du dossier actuel dans un terminal.
  3. Exécution pwdpour obtenir/home/myuser/.gvfs/wdtvlivehub on 192.168.5.4
  4. Faire ls /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4travaillé.

..Quelle serait une manière plus élégante?

octosquidopus
la source
Le montage du système de fichiers distant est-il une option?
beatgammit
Oui, ça peut l'être.
octosquidopus le

Réponses:

5

Votre méthode actuelle d'utilisation ~/.gvfs/est correcte, mais vous n'avez pas besoin de pcmanfm pour cela - vous pouvez utiliser gvfs-mount pour vous connecter au partage. En outre, des outils tels que gvfs-lset gvfs-cpaccepteront votre smb: // URI.

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

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

Dans les versions récentes de gvfs, l'emplacement est $XDG_RUNTIME_DIR/gvfs/(aka /run/user/$UID/gvfs/), et les noms des sous-répertoires sont devenus plus lisibles par la machine:

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

Dans les anciennes versions:

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

(N'oubliez pas de citer des espaces dans les noms de chemin.)


Spécifiquement pour Samba, vous pouvez utiliser le smbclientprogramme ou monter le partage sur la couche VFS à l'aide de mount -t cifs. (Ce dernier est, malheureusement, limité à root.)

$ smbclient //host/share

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

(Pour d'autres types de systèmes de fichiers, tels que SFTP et FTP, sshfset curlftpfsexistent respectivement.)

user1686
la source
J'ai mentionné pcmanfm parce que c'est probablement comme ça que je vais accéder au dossier avant de l'exécuter avec le script. gv-ls semble être exactement ce que je cherchais, cependant. On dirait qu'il pourrait même remplacer lsles répertoires locaux par souci de cohérence.
octosquidopus le
Il vaut la peine de préciser que "gvfs-ls smb: // host / share /" fonctionne comme décrit sans avoir besoin de monter le lecteur en utilisant gvfs-mount d'abord. En d'autres termes, les commandes du premier bloc de code n'ont pas toutes besoin d'être utilisées pour atteindre le résultat souhaité.
John T
@JohnT: Ça devait être une coïncidence. Je reçois habituellement The specified location is not mounted.
user1686
@grawity - J'ai généralement déjà navigué jusqu'à l'emplacement dans Nautilus ou similaire et authentifié de cette façon, cela pourrait avoir quelque chose à voir avec cela.
John T
@JohnT: Oui, Nautilus utilise le même GVFS, et GTK monte automatiquement les emplacements gvfs auxquels vous essayez d'accéder. Si le partage apparaît dans le volet latéral de Nautilus, il est alors "monté".
user1686
12

Vous pouvez utiliser la commande smbclient , par exemple:

smbclient -N //192.168.5.4/wdtvlivehub/abc -c ls
rumpel
la source
4
Génial, mais comment puis-je obtenir la même sortie qu'avec le lsformat régulier (pas de colonnes ni de formatage, juste une liste de fichiers)? C'est important parce que je veux diriger la sortie vers une autre commande.
octosquidopus le