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


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

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


161
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: Я удалил скрипт, который ранее был включен в этот ответ из-за нехватки времени для обслуживания и улучшения. Вы все еще можете найти его в истории изменений.


120
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/

74
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


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, Это перечислит каждую активную файловую систему.


9
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