Câu hỏi Các thiết bị được gắn MTP nằm ở đâu trong hệ thống tập tin?


Tôi có điện thoại Android kết nối với máy tính của mình qua MTP. Điều này hoạt động tốt; Tôi có thể xem và chuyển các tập tin với Nautilus. Tuy nhiên, tôi thường muốn sử dụng các thiết bị đầu cuối để di chuyển số lượng lớn các tập tin, và tôi dường như không thể tìm thấy thiết bị bất cứ nơi nào trong cây hệ thống tập tin. Nautilus báo cáo vị trí là mtp://[usb:003,007]/, nhưng nó không dưới /media hoặc là /mnt.

Có ai biết nó ở đâu không?


169
2017-09-06 20:00


gốc


Có thể trùng lặp Hiển thị đường dẫn có thể truy cập 'cd' tới thiết bị mtp ở Nemo - dimo414


Các câu trả lời:


Như bạn đã tìm ra, các điểm gắn kết nằm trong /run/user/$USER/gvfs/ (hoặc là /var/run/user/$UID/gvfs) và được đặt tên theo giao thức, loại kết nối và địa chỉ họ sử dụng. Điều này làm cho mọi thứ trở nên khó khăn hơn, bởi vì địa chỉ kết nối có thể thay đổi mỗi khi bạn thay thế thiết bị, ngay cả khi nó là cùng một cổng. Nếu bạn có cùng một thiết bị hai lần nó trở nên tồi tệ hơn.

Bạn có thể dùng lsusb để hiển thị tất cả các thiết bị USB được kết nối từ thiết bị đầu cuối:

$ lsusb | grep Google                       # Note: This is a Nexus 4
Bus 002 Device 025: ID 18d1:4ee2 Google Inc.

Như bạn đã nhận thấy Nautilus cũng cung cấp thông tin này thông qua mẹo công cụ. Bạn sẽ tìm thấy dạng được mã hóa, ví dụ: mtp://[usb:002,025] trong /run/user/$USER/gvfs (hoặc là /var/run/user/$UID/gvfs) như mtp:host=%5Busb%3A002%2C025%5D


Chỉnh sửa của Asker: Điều này dường như yêu cầu phiên bản libmtp và / hoặc gvfs mới hơn so với phiên bản mặc định có sẵn theo mặc định trong 13.04. Chạy sudo add-apt-repository ppa:langdalepl/gvfs-mtp và cập nhật trước khi làm bất cứ điều gì khác.


Chỉnh sửa: PPA không cần thiết nữa trong saucy / 13.10 và mới hơn, tên tập tin được liệt kê trong thiết bị đầu cuối như họ đang có trong Nautilus.

Chỉnh sửa 2016-01-11: Tôi đã xóa tập lệnh đã được đưa vào câu trả lời trước đây do thiếu thời gian để bảo trì và cải tiến. Bạn vẫn có thể tìm thấy nó trong lịch sử sửa đổi.


124
2017-09-07 13:25



Cảm ơn bạn vì câu trả lời. Thật không may, nó không hoạt động vì tên thư mục thực tế (ví dụ / DCIM / Camera /) chỉ hiển thị trong Nautilus, không phải là thiết bị đầu cuối. Do đó, $ Path / DCIM / Camera không thể truy cập được bằng rsync. - bessman
Đường dẫn chỉ là một ví dụ và khác với điện thoại Android. Điện thoại cũng phải được mở khóa thông qua màn hình khóa để cho phép truy cập dữ liệu. - LiveWireBT
Con đường /DCIM/Camera/ tồn tại trên điện thoại của tôi, nhưng trong thiết bị đầu cuối nó được gọi là /2404/2407/. Đó chính là vấn đề. Nếu tôi cdvào /2404/2407/ và chạy nautilus ., sau đó /DCIM/Camera/ được mở. Điện thoại được mở khóa, nếu không tôi sẽ không thể truy cập nó thông qua Nautilus, phải không? - bessman
Lưu ý rằng để tất cả điều này hoạt động, bạn cần có gvfs-fuse gói cài đặt. Không phải tất cả các phiên bản / hương vị của Ubuntu đều có mặc định (ví dụ: Ubuntu MATE 14.10 không). Nếu không có nó, thiết bị MTP sẽ không được gắn kết như một đường dẫn cục bộ và sẽ chỉ có thể sử dụng được bởi các ứng dụng hỗ trợ các URI gvfs. - user149408
Tôi tìm thấy gvfs/ cuối cùng. Tuy nhiên thay vì $ USER, đường dẫn trên máy tính này là: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D - Đối với những người khác tôi đề nghị bạn chỉ cần poke về, nếu bạn không tìm thấy nó ngay lập tức. - will


Bộ nhớ của thiết bị Nexus của tôi có thể được truy cập tại:

/run/user/$UID/gvfs/mtp*

Vì vậy, nếu $ UID của bạn là 1000, bạn có thể tìm thấy nó bằng cách làm

$ cd /run/user/$UID/gvfs/mtp*

hoặc (đối với vị trí chính xác trong ví dụ giả sử UID của bạn là 1000),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/

78
2018-02-15 07:39



Điều này phải là câu trả lời được chấp nhận vì nó không yêu cầu cài đặt bất kỳ phần mềm bổ sung nào. Cảm ơn rất nhiều user2529583! - NH.
Bất kỳ ý tưởng nào nếu mtp* tên tập tin có thể được đổi tên để sử dụng trong các ứng dụng Wine? Ngây thơ mv đưa cho tôi mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory (lưu ý rằng tên tệp đã hoàn thành tab) - Mark Jeronimus
@Mark bất kỳ ký tự nào là tên tệp hợp lệ trong linux. Hãy xem nếu có một cách đổi tên nó mà không có mv. - Babken Vardanyan
Tuyệt vời. Nó hoạt động hoàn toàn tốt đẹp và cứu tôi rất nhiều "cố gắng" trên Raspbian Wheezy và Jessie - Zimano
Ubuntu 16.04 và Honor 9 Lite. Sau khi kết nối điện thoại /run/user/1000/gvfs tệp này rỗng. - LRDPRDX


MTP thiết bị gắn kết thường có thể được tìm thấy trong: /run/user/1000/gvfs/


ví dụ: nếu thanh địa chỉ Nautilus hiển thị mtp://[usb:001,006]/, sau đó bạn có thể truy cập bằng cách:

/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/

bây giờ trên thiết bị đầu cuối bạn có thể sao chép các tập tin hoặc thư mục:

  • cd vào thư mục -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • sau đó sao chép các thư mục cần thiết vào thư mục hiện tại -> cp -r ~/videos/ .

21
2018-03-10 04:07



Nó hoạt động chính xác như bạn nói. Nhưng khi tôi làm 'ls-a' thì nó trống rỗng. - ycc_swe


Kiểu mount. Điều đó sẽ liệt kê tất cả các hệ thống tập tin đang hoạt động.


10
2017-09-06 21:50



Không, thiết bị không hiển thị ở đầu ra. - LiveWireBT
Hmm. Đó là loại công việc. Tôi tìm thấy nó trong / run / user / myusername / gvfs /. Tuy nhiên, tất cả các tên thư mục chỉ là số thay vì tên thật mà tôi thấy trong Nautilus. Như vậy, nó không thực sự giải quyết vấn đề của tôi bởi vì tôi vẫn không thể dễ dàng sử dụng các thiết bị đầu cuối để di chuyển các tập tin vào thiết bị. - bessman
Khi Nautilus mở thiết bị MTP, sử dụng lệnh lsof -c nautilus | less liệt kê tất cả các tệp tin Nautilus đã mở. - waltinator
Điều đó giải quyết nó cho tôi :) - marlar


Điều này đang làm việc với:

  • Linux Mint 17.3
  • Samsung Galaxy S5

thử cái này:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • # có thể là một dòng (đây là không bắt buộc)
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • # Cá nhân tôi muốn hạn chế quyền NO-eXecute
    • # Tại thời điểm này tôi không chắc chắn là gì đủ tăng.
  5. Rút phích cắm điện thoại micro-USB và plug-in, sau đó ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

đầu ra:

 total 0
 drwxrwxrwx 2 will will 0 Jan  1  1970 Card
 drwxrwxrwx 2 will will 0 Jan  1  1970 Phone
 drwxrwxrwx 2 will will 0 Jan  1  1970 Playlists
  1. ls -lt /media/mtp/phone/Card

đầu ra:

 total 0
 drwxrwxrwx 2 will will 0 Jan  1  1970 Android
 drwxrwxrwx 2 will will 0 Jan  1  1970 DCIM
 drwxrwxrwx 2 will will 0 Jan  1  1970 LOST.DIR
 drwxrwxrwx 2 will will 0 Jan  1  1970 Music

Liệt kê quyền truy cập vào thẻ SD trên điện thoại Android của tôi. "Danh sách phát"là một thư mục ảo được gọi là" / Danh sách phát "chứa danh sách phát của bạn dưới dạng tệp .m3u. (mỗi man mtpfs)

Điều đó dường như làm các trick. Các lệnh hữu ích cần ghi nhớ ...

  • sudo mtpfs -h ... liệt kê các tùy chọn của thiết bị. Điều này dường như chỉ hoạt động trước khi bạn đã gắn thiết bị. Vì vậy, kiểm tra đầu tiên-off, có lẽ.
  • mtp-detect ... cho thấy rất nhiều đồ đạc về thiết bị (một phần của mtp-tools).

Ngoài ra tôi nghĩ bạn cần điện thoại / thiết bị "trên", mở trình bảo vệ màn hình nếu bạn có thiết bị để thiết bị có thể kết nối.

Tôi nhận thấy rằng gắn kết USB-s của tôi là:

  • / media / will /ổ đĩa USB

Vì vậy, nó có thể có ý nghĩa hơn để gắn kết dưới tên người dùng của bạn thay vì của "mtp" sơ khai. Đồng thời xem lại bài đăng: "Lắp thẻ SD MTP Android trên Ubuntu", nó có một vài gợi ý và tính năng bổ sung hữu ích.

tài liệu tham khảo:

Tôi đã dẫn đầu của tôi từ hai bài viết này:


7
2018-01-11 20:11



Hi mặc dù công trình này, tôi vẫn tìm thấy MTP là quá chậm và thường nó là như thể máy tính Linux của tôi đã bị khóa. Tôi hỗ trợ các ý kiến ​​thêm về việc sử dụng FTP. Tôi đã làm một số đào và giới thiệu sshelper ứng dụng. Nó rất hữu ích, nguồn mở, và trưởng thành. Sẽ làm việc với Windows, Linux và Mac - Hoặc bất cứ thứ gì hỗ trợ SSH. Dễ sử dụng quá. Thôi buông đi. - will


Đây không phải là một câu trả lời trực tiếp cho vấn đề, nhưng một giải pháp dù sao đi nữa.

Sau khi trải qua sự không nhất quán với kết nối USB, tôi bỏ qua tất cả các hệ thống .gvfs và USB.

Tôi đã cài đặt một máy chủ ftp đơn giản trên android và voila! Kết nối với máy chủ (hoặc ftp với đăng nhập hoặc không có, tùy thuộc vào cách bạn chọn) từ Nautilus / nemo / thunar và đi bạn đi.

Đồng bộ hóa các thư mục được xử lý thông qua OwnCloud và / hoặc BitTorrentSync.

Và FTP qua mạng không dây nhanh hơn kết nối USB.


6
2017-10-27 02:11





Tôi có điện thoại LG2 và đang chạy Xubuntu 15.10.

Đây là cách tôi gắn thiết bị vào thư mục mnt bên dưới người dùng của tôi.

  1. Trước tiên hãy chắc chắn rằng bạn đã cài đặt các gói sau trong hệ thống của bạn.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Kết nối điện thoại của bạn dưới dạng thiết bị MTP và nhập lệnh sau vào thiết bị đầu cuối của bạn.

    mtp-detect
    
  3. Bỏ ghi chú user_allow_other trong tập tin /etc/fuse.conf.

  4. Tạo thư mục mnt trong thư mục chính của bạn.

    mkdir mnt
    
  5. Gắn thiết bị.

    jmtpfs ~/mnt
    
  6. Đó là nó. Bây giờ thiết bị của bạn được gắn dưới mnt thư mục được tạo trong bước 4.

Lưu ý: Có thể có một số bước không cần thiết. Nhưng theo các bước trên đã làm việc cho tôi.

Tài liệu tham khảo: https://wiki.archlinux.org/index.php/MTP


6
2017-12-16 06:00





MTP là một giao thức, giống như FTP hoặc SSH. Nó lấy các tập tin khi người dùng yêu cầu nó. Do đó không có hệ thống tập tin được gắn trên máy tính.

Sử dụng mtpfs để làm cho nó xuất hiện như một hệ thống tập tin được gắn kết.

mtpfs <a_folder_to_mount>

Không cần phải chỉ định thiết bị. Nếu bạn chỉ có một thiết bị được kết nối, thì không có sự mơ hồ. Tôi chưa thử nghiệm nó với nhiều thiết bị kết nối với máy tính của tôi.


4
2018-02-13 08:05





Tôi không biết chính xác để đi qua vị trí MTP qua thiết bị đầu cuối. Tuy nhiên, tôi phát hiện ra rằng chúng ta có thể kích chuột phải vào thẻ Internal storage / SD và chọn tùy chọn "Open in Terminal". Làm như vậy vị trí được mở trực tiếp trong Terminal.


2
2018-04-16 10:48



Một ảnh chụp màn hình thực sự (của bộ đệm khung nội bộ) sẽ tốt hơn rất nhiều so với ảnh chụp màn hình (với máy ảnh bên ngoài). - David Foerster