Wie ls ich einen Remote-Ordner?

10

Dieser benutzt Samba:

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

Ich habe es irgendwie geschafft, es zu tun;

  1. Zum Remote-Verzeichnis navigieren. ( pcmanfm 0.9.9 )
  2. Öffnen des aktuellen Ordners in einem Terminal.
  3. Ausführen pwd, um zu bekommen/home/myuser/.gvfs/wdtvlivehub on 192.168.5.4
  4. Das hat ls /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4funktioniert.

..Was wäre eleganter?

octosquidopus
quelle
Ist das Mounten des Remote-Dateisystems eine Option?
Beatgammit
Ja, das kann sein.
Octosquidopus

Antworten:

5

Ihre derzeitige Verwendungsmethode ~/.gvfs/ist in Ordnung, aber dafür benötigen Sie pcmanfm nicht - Sie können gvfs-mount eine Verbindung zur Freigabe herstellen. Darüber hinaus akzeptieren Tools wie gvfs-lsund gvfs-cpakzeptieren Ihren smb: // URI.

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

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

In den letzten gvfs-Versionen ist der Speicherort $XDG_RUNTIME_DIR/gvfs/(aka /run/user/$UID/gvfs/) und die Namen der Unterverzeichnisse sind maschinenlesbarer geworden:

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

In älteren Versionen:

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

(Denken Sie daran, Leerzeichen in Pfadnamen anzugeben.)


Speziell für Samba können Sie das smbclientProgramm verwenden oder die Freigabe mithilfe von auf der VFS-Ebene bereitstellen mount -t cifs. (Letzteres ist leider auf root beschränkt.)

$ smbclient //host/share

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

(Für andere Arten von Dateisystemen wie SFTP und FTP sshfsbzw. curlftpfsvorhanden.)

user1686
quelle
Ich habe pcmanfm erwähnt, weil ich auf diese Weise höchstwahrscheinlich zum Ordner komme, bevor ich ihn mit dem Skript ausführe. gv-ls scheint jedoch genau das zu sein, wonach ich gesucht habe. Es sieht so aus, als könnte es lsaus Gründen der Konsistenz sogar lokale Verzeichnisse ersetzen .
Octosquidopus
Es sollte klargestellt werden, dass "gvfs-ls smb: // host / share /" wie beschrieben funktioniert, ohne dass das Laufwerk zuerst mit gvfs-mount gemountet werden muss. Mit anderen Worten, die Befehle im ersten Codeblock müssen nicht alle verwendet werden, um das gewünschte Ergebnis zu erzielen.
John T
@ JohnT: Muss ein Zufall gewesen sein. Ich bekomme normalerweise The specified location is not mounted.
user1686
@grawity - Ich habe normalerweise bereits nach dem Speicherort in Nautilus oder ähnlichem gesucht und mich auf diese Weise authentifiziert, was möglicherweise etwas damit zu tun hat.
John T
@JohnT: Ja, Nautilus verwendet dasselbe GVFS, und GTK stellt automatisch gvfs-Speicherorte bereit, auf die Sie zugreifen möchten. Wenn die Freigabe im Seitenbereich von Nautilus angezeigt wird, wird sie jetzt "gemountet".
user1686
12

Sie können den Befehl smbclient verwenden , z.

smbclient -N //192.168.5.4/wdtvlivehub/abc -c ls
Rumpel
quelle
4
Großartig, aber wie kann ich die gleiche Ausgabe wie bei regulären lsDateien erzielen (keine Spalten oder Formatierungen, nur eine Liste von Dateien)? Dies ist wichtig, da ich die Ausgabe an einen anderen Befehl weiterleiten möchte.
Octosquidopus