Вопрос Где находятся устройства MTP, расположенные в файловой системе?


У меня есть телефон Android, который соединяется с моим компьютером через MTP. Это прекрасно работает; Я могу просматривать и передавать файлы с помощью Nautilus. Тем не менее, я часто хочу использовать терминал для перемещения большого количества файлов, и я не могу найти устройство в любом месте в дереве файловой системы. Nautilus сообщает о местонахождении как mtp://[usb:003,007]/, но это не /media или /mnt,

Кто-нибудь знает, где это?


169
2017-09-06 20:00


происхождения


Возможный дубликат Показывать 'cd' доступный путь к mtp-устройству в Nemo - dimo414


ответы:


Как вы уже выяснил, точки монтирования находятся в /run/user/$USER/gvfs/ (или /var/run/user/$UID/gvfs) и названы в честь протокола, типа подключения и адреса, который они используют. Это усложняет ситуацию, поскольку адрес соединения может меняться каждый раз, когда вы выполняете повторное использование устройства, даже если это тот же порт. Если у вас одно и то же устройство, то это становится еще хуже.

Вы можете использовать lsusb для отображения всех подключенных USB-устройств от терминала:

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

Как вы заметили, Nautilus также дает эту информацию с помощью наконечника инструмента. Вы найдете кодированную форму, например. mtp://[usb:002,025] в /run/user/$USER/gvfs (или /var/run/user/$UID/gvfs) в виде mtp:host=%5Busb%3A002%2C025%5D


Редактирование Asker: Кажется, требуется более новая версия libmtp и / или gvfs, чем доступно по умолчанию в 13.04. Бег sudo add-apt-repository ppa:langdalepl/gvfs-mtp и обновить, прежде чем делать что-либо еще.


Изменить: PPA больше не нужен в saucy / 13.10 и новее, имена файлов перечислены в терминале, так как они находятся в Nautilus.

Edit 2016-01-11: Я удалил скрипт, который ранее был включен в этот ответ из-за нехватки времени для обслуживания и улучшения. Вы все еще можете найти его в истории изменений.


124
2017-09-07 13:25



Спасибо за ваш ответ. К сожалению, это не работает, потому что фактические имена папок (например, / DCIM / Camera /) видны только в Nautilus, а не в терминале. Таким образом, $ path / DCIM / Camera недоступен с rsync. - bessman
Путь является просто примером и отличается для телефонов Android. Телефон также должен быть разблокирован через экран блокировки, чтобы разрешить доступ к данным. - LiveWireBT
Путь /DCIM/Camera/ существует на моем телефоне, но в терминале он называется /2404/2407/, Это проблема. Если я cd в /2404/2407/ и запустить nautilus ., тогда /DCIM/Camera/ открыт. Телефон разблокирован, иначе я не смог бы получить доступ к нему через Наутилус, верно? - bessman
Обратите внимание, что для того, чтобы все это работало, вам необходимо иметь gvfs-fuseустановленный пакет. Не все версии / вкусы Ubuntu по умолчанию имеют (например, Ubuntu MATE 14.10). Без него устройство MTP не будет смонтировано как локальный путь и будет использоваться только приложениями, поддерживающими URI gvfs. - user149408
Я нашел gvfs/ в конечном итоге. Однако вместо $ USER путь на этом ПК: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D - Для других я предлагаю вам просто совать, если вы не найдете его сразу. - will


Доступ к памяти устройства Nexus можно получить по адресу:

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

Поэтому, если ваш $ UID 1000, вы можете найти это, либо сделав

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

или (для точного местоположения в примере, если ваш UID равен 1000),

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

78
2018-02-15 07:39



Эта должен быть принятым ответом, поскольку он не требует установки какого-либо дополнительного программного обеспечения. Большое спасибо пользователю2529583! - NH.
Любая идея, если mtp* имя файла можно переименовать для использования в приложениях Wine? наивный mv дает мне mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory (обратите внимание, что имя файла заполнено вкладкой) - Mark Jeronimus
@Mark любой символ является допустимым именем файла в linux. Посмотрите, есть ли способ переименовать его без mv. - Babken Vardanyan
Потрясающие. Он отлично работает и спас меня от многих «попыток» на Raspbian Wheezy и Jessie - Zimano
Ubuntu 16.04 и Honor 9 Lite. После подключения телефона /run/user/1000/gvfs папка пуста. - LRDPRDX


MTP как правило, можно найти в: /run/user/1000/gvfs/


например, если ваша адресная строка Nautilus показывает mtp://[usb:001,006]/, то вы можете получить доступ:

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

теперь на терминале вы можете копировать файлы или папки:

  • cd в папку -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • затем скопируйте необходимые папки в текущий каталог -> cp -r ~/videos/ .

21
2018-03-10 04:07



Он работает точно так же, как вы говорите. Но когда я делаю «ls -a», он пуст. - ycc_swe


Тип mount, Это перечислит каждую активную файловую систему.


10
2017-09-06 21:50



Нет, устройство не отображается на выходе. - LiveWireBT
Хм. Это сработало. Я нашел его под / run / user / myusername / gvfs /. Однако все имена папок - это просто цифры, а не фактические имена, которые я вижу в Nautilus. Таким образом, это действительно не решает мою проблему, потому что я все еще не могу легко использовать терминал для перемещения файлов на устройство. - bessman
Когда Nautilus откроет MTP-устройство, используйте команды lsof -c nautilus | less для отображения всех файлов Nautilus открыт. - waltinator
Это решило это для меня :) - marlar


Это работает с:

  • Linux Mint 17.3
  • Samsung Galaxy S5

попробуй это:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • # да может быть одна строка (это необязательный)
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • # Лично я бы ограничил разрешения NO-EXECUTE
    • # На данный момент я не уверен, что такое достаточно монтировать.
  5. Отключите телефон micro-USB и подключаемый модуль, затем ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

вывод:

 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

вывод:

 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

Листинг доступа к SD-карте на моем телефоне Android. "Плейлисты"- это виртуальный каталог под названием" / Playlists ", который содержит ваши плейлисты в виде файлов .m3u. man mtpfs)

Кажется, это трюк. Полезные команды для запоминания ...

  • sudo mtpfs -h ... перечисляет параметры устройства. Кажется, это работает только до того, как вы установили устройство. Поэтому, пожалуйста, проверьте, пожалуйста, первыми.
  • mtp-detect ... показывает много материал об устройстве (часть mtp-инструментов).

Также я думаю, что вам нужен телефон / устройство "на", откройте экранную заставку, если у вас есть один, чтобы устройство могло подключаться.

Я заметил, что мой USB-накопитель как:

  • / СМИ / будет /USB-накопитель

Поэтому может возникнуть смысл монтировать под вашим именем пользователя вместо заглушки «mtp». Также просмотрите сообщение: "Установка SD-карты MTP Androids на Ubuntu», у него есть несколько полезных предложений и дополнений.

Рекомендации:

Я взял на себя инициативу от этих двух должностей:


7
2018-01-11 20:11



Привет, хотя это работает, я все еще считаю, что MTP слишком медленный, и часто это будто мой Linux-ПК заблокирован. Я поддерживаю дальнейшие комментарии об использовании FTP. Я сделал рытье и рекомендовал sshelper приложение, Это очень полезно, открытое и зрелое. Будет работать с Windows, Linux и Mac. Или что-нибудь, что поддерживает SSH. Простота в использовании. Попробуй. - will


Это не прямой ответ на проблему, но решение тем не менее.

После того, как вы столкнулись с несогласованностью с USB-подключением, я обошел систему .gvfs и USB все вместе.

Я установил простой ftp-сервер на Android и вуаля! Подключитесь к серверу (ftp с логином или без, в зависимости от того, как вы выбираете) от Nautilus / nemo / thunar и прочь.

Синхронизация папок обрабатывается через OwnCloud и / или BitTorrentSync.

И FTP по беспроводной сети быстрее, чем USB-соединение.


6
2017-10-27 02:11





У меня есть телефон LG2, и я запускаю Xubuntu 15.10.

Вот как я установил устройство в каталог mnt под моим пользователем.

  1. Сначала убедитесь, что в вашей системе установлены следующие пакеты.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Подключите телефон как устройство MTP и введите следующую команду в своем терминале.

    mtp-detect
    
  3. Раскоментируйте user_allow_other в файле /etc/fuse.conf,

  4. Создать каталог mnt в вашем домашнем каталоге.

    mkdir mnt
    
  5. Установите устройство.

    jmtpfs ~/mnt
    
  6. Это оно. Теперь ваше устройство смонтировано под mnt каталог, созданный в шаг 4,

Примечание. Возможно, есть некоторые шаги, которые не нужны. Но следующие шаги были для меня.

Справка: https://wiki.archlinux.org/index.php/MTP


6
2017-12-16 06:00





Протокол MTP - это протокол, похожий на FTP или SSH. Он извлекает файлы, когда пользователь запрашивает их. Таким образом, на компьютере нет установленной файловой системы.

Используйте mtpfs, чтобы он выглядел как смонтированная файловая система.

mtpfs <a_folder_to_mount>

Не нужно указывать устройство. Если подключено только одно устройство, то нет никакой двусмысленности. Я не тестировал его с несколькими устройствами, подключенными к моему компьютеру.


4
2018-02-13 08:05