Làm thế nào để `ls` một thư mục từ xa?


10

Cái này sử dụng Samba:

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

Tôi bằng cách nào đó quản lý để làm điều đó bằng cách;

  1. Duyệt đến thư mục từ xa. ( pcmanfm 0.9.9 )
  2. Mở thư mục hiện tại trong một thiết bị đầu cuối.
  3. Thực hiện pwdđể có được/home/myuser/.gvfs/wdtvlivehub on 192.168.5.4
  4. Làm ls /home/myuser/.gvfs/wdtvlivehub on 192.168.5.4việc.

.. Điều gì sẽ là một cách thanh lịch hơn?


Là gắn hệ thống tập tin từ xa là một tùy chọn?
beatgammit

Đúng, nó có thể.
octosquidopus

Câu trả lời:


5

Phương pháp sử dụng hiện tại của bạn ~/.gvfs/là tốt, nhưng bạn không cần pcmanfm cho điều đó - bạn có thể sử dụng gvfs-mount để kết nối với chia sẻ. Ngoài ra, các công cụ như gvfs-lsgvfs-cpsẽ chấp nhận smb của bạn : // URI.

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

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

Trong các phiên bản gvfs gần đây, vị trí là $XDG_RUNTIME_DIR/gvfs/(aka /run/user/$UID/gvfs/) và các tên thư mục con đã trở nên dễ đọc hơn:

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

Trong các phiên bản cũ hơn:

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

(Hãy nhớ trích dẫn khoảng trắng trong tên đường dẫn.)


Cụ thể đối với Samba, bạn có thể sử dụng smbclientchương trình hoặc gắn kết chia sẻ trên lớp VFS bằng cách sử dụng mount -t cifs. (Thật không may, giới hạn là root.)

$ smbclient //host/share

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

(Đối với các loại hệ thống tệp khác, chẳng hạn như SFTP và FTP, sshfscurlftpfstồn tại tương ứng.)


Tôi đã đề cập đến pcmanfm bởi vì đó có lẽ là cách tôi sẽ vào thư mục trước khi thực hiện nó với tập lệnh. gv-ls dường như chính xác là những gì tôi đang tìm kiếm, mặc dù. Có vẻ như nó thậm chí có thể thay thế lscho các thư mục địa phương vì sự thống nhất.
octosquidopus

Cần làm rõ rằng "gvfs-ls smb: // host / share /" hoạt động như mô tả mà không cần phải gắn ổ đĩa bằng gvfs-mount trước. Nói cách khác, các lệnh trong khối mã đầu tiên không cần phải được sử dụng để đạt được kết quả mong muốn của bạn.
John T

@ John: Phải là một sự trùng hợp. Tôi thường nhận được The specified location is not mounted.
dùng1686

@grawity - Tôi thường đã duyệt qua vị trí trong Nautilus hoặc tương tự và được xác thực theo cách đó, điều đó có thể có liên quan đến nó.
John T

@JohnT: Có, Nautilus sử dụng cùng một GVFS và GTK tự động gắn kết các vị trí gvfs mà bạn đang cố truy cập. Nếu chia sẻ hiển thị trong khung bên của Nautilus, thì nó được 'gắn kết' ngay bây giờ.
dùng1686

12

Bạn có thể sử dụng lệnh smbclient , vd:

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

4
Tuyệt vời, nhưng làm thế nào tôi có thể đạt được đầu ra giống như thông thường ls(không có cột cũng không định dạng, chỉ là một danh sách các tệp)? Điều này quan trọng bởi vì tôi muốn chuyển đầu ra sang một lệnh khác.
octosquidopus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.