У меня есть телефон Android, который соединяется с моим компьютером через MTP. Это прекрасно работает; Я могу видеть и передавать файлы с помощью Nautilus. Однако я часто хочу использовать терминал для перемещения большого количества файлов, и я не могу найти устройство где-либо в дереве файловой системы. Наутилус сообщает о местоположении как mtp://[usb:003,007]/
, но он не находится под /media
или /mnt
.
Кто-нибудь знает, где это?
Как вы уже обнаружили , точки монтирования находятся в /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
Правка Аскера: для этого требуется более новая версия libmtp и / или gvfs, чем доступна по умолчанию в 13.04. Запустите sudo add-apt-repository ppa:langdalepl/gvfs-mtp
и обновите, прежде чем делать что-либо еще.
Редактировать: PPA больше не нужен в saucy / 13.10 и более новых, имена файлов перечислены в терминале, как и в Nautilus.
Редактировать 2016-01-11: я удалил сценарий, который ранее был включен в этот ответ, из-за нехватки времени на обслуживание и улучшения. Вы все еще можете найти его в истории изменений.
Доступ к памяти моего устройства 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/
MTP
установленное устройство обычно можно найти в: /run/user/1000/gvfs/
, например, если в адресной строке Nautilus отображается mtp://[usb:001,006]/
, то вы можете получить доступ по:
/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
теперь на терминале вы можете копировать файлы или папки:
cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
cp -r ~/videos/ .
Тип mount
. Это будет список всех активных файловых систем.
У меня есть телефон LG2, и я использую Xubuntu 15.10.
Так я смонтировал устройство в каталоге mnt под моим пользователем.
Сначала убедитесь, что в вашей системе установлены следующие пакеты.
sudo apt-get install jmtpfs mtp-tools
Подключите телефон как устройство MTP и введите следующую команду в своем терминале.
mtp-detect
Раскомментировать user_allow_other
в файле /etc/fuse.conf
.
Создайте каталог mnt
в вашем домашнем каталоге.
mkdir mnt
Установите устройство.
jmtpfs ~/mnt
Вот и все. Теперь ваше устройство смонтировано в каталоге mnt
, созданном на шаге 4 .
Примечание: могут быть некоторые ненужные шаги. Но следующие шаги сработали для меня.
Это работает с:
попробуйте это:
apt-get install mtpfs
apt-get install mtp-tools
#
да могла быть одна строка (это является дополнительным),sudo mkdir -p /media/mtp/phone
sudo chmod 775 /media/mtp/phone
#
Лично я ограничил бы полномочия НЕТ - выполняются#
В этой точке я не уверен, что достаточно должно смонтироваться.sudo mtpfs -o allow_other /media/mtp/phone
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
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. "Плей-листы" являются виртуальным каталогом, названным "/Плей-листы", который содержит Ваши плей-листы как .m3u файлы. (на man mtpfs
)
Это, кажется, добивается цели. Полезные команды для запоминания...
sudo mtpfs -h
... перечисляет опции устройства. Это, кажется, только работает перед монтированием устройства. Так проверяют прежде всего, возможно.mtp-detect
... шоу много материала об устройстве (часть mtp-инструментов).Также я думаю, что Вы нуждаетесь в телефоне/устройстве "на", открываете экранную заставку, если у Вас есть тот, таким образом, устройство может соединиться.
Я заметил, что мой USB-s монтируется как:
Таким образом, могло бы иметь больше смысла монтироваться под Вашим именем пользователя вместо "mtp" тупика. Также рассмотрите сообщение: "Монтируя Ваш MTP SD-карта Android на Ubuntu", это имеет несколько полезных предложений и отдельно оплачиваемых предметов.
Я взял на себя свою инициативу из этих двух сообщений:
Это не прямой ответ на проблему, но, тем не менее, решение.
После несоответствия с USB-соединением я обошел все .gvfs и USB-систему вместе.
Я установил простой FTP-сервер на Android и вуаля! Подключитесь к серверу (либо по протоколу ftp с логином, либо без, в зависимости от того, как вы выберете) из Nautilus / nemo / thunar и все готово.
Синхронизация папок обрабатывается через OwnCloud и / или BitTorrentSync.
И FTP через беспроводную сеть работает намного быстрее, чем USB-соединение.
MTP - это протокол, очень похожий на FTP или SSH. Он выбирает файлы, когда пользователь просит об этом. Таким образом, на компьютере нет смонтированной файловой системы.
Используйте mtpfs, чтобы он выглядел как смонтированная файловая система.
mtpfs <a_folder_to_mount>
Нет необходимости указывать устройство. Если у вас подключено только одно устройство, то двусмысленности нет. Я не тестировал его с несколькими устройствами, подключенными к моему компьютеру.
Я могу управлять файлами на Android-устройстве, подключенном к MTP, используя команды gvfs-*
(например, gvfs-cp
, gvfs-move
, ...), которые также упоминаются в следующей статье Википедии : GVFS .
Я написал простую утилиту CLI для синхронизации файлов с устройством Android: https://github.com/DusanMadar/PySyncDroid
Я не знаю точно, чтобы перейти к местоположению MTP через терминал. Однако я обнаружил, что мы можем щелкнуть правой кнопкой мыши на внутренней памяти / SD-карте и выбрать опцию «Открыть в терминале». При этом местоположение открывается непосредственно в Терминале.
После доступа к правильному пути, как сказано ЗДЕСЬ и другим ответам, хорошей идеей является добавьте неизменяемый путь (например, / run / user / 1000 / gvfs
) в качестве закладки на левую панель файлового менеджера. Когда телефон отключен, эта папка будет пустой.
Я заметил, что есть разница между параметрами, доступными для файла, доступ к которому осуществляется таким способом , и параметрами, доступными для того же файла при доступе "обычным" способом, mtp: //
путь (щелчок «mtp» или имя / номера устройства на левой панели): при доступе к / run / user /.../ gvfs
файл имеет в контекстном меню (" Откройте с ") все ожидаемые варианты; эти параметры ограничены (уменьшены до значений по умолчанию / ванильных), когда к файлу обращается mtp: //
. Кроме того, некоторые программы (например, MKVToolNix) не могут получить доступ к файлу по пути mtp: //
, но могут по другому пути. Этот аспект может стать важным в некоторых сценариях, например, когда нужно создать / загрузить файл на телефон, обработать его с помощью компьютерной программы (например, MKVToolNix) и вывести на внешнее устройство.
В последние несколько дней мое соединение MTP снова было смертельно медленным. Я все еще на 18.04 и пока не могу обновиться до 20.04 (я работаю над устройствами, которым требуется 18.04).
В первый раз, когда я столкнулся с проблемой, я смог найти файл со скобками и удалить этот файл, после чего все вернулось в норму. До сих пор. Мне действительно нужен быстрый доступ к моим изображениям, поскольку я использую эту функцию для своей работы, поэтому я посмотрел дальше... и обнаружил, что исправление доступно, как и ожидалось, в отчете об ошибке панели запуска.
Вот копия конкретной записи, которая исправила это для меня:
Я только что попытался установить libmtp-1.1.17-2 18.04 отсюда: https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+сборка/18694144 файлы:
- libmtp-common_1.1.17-2_all.deb
- libmtp-runtime_1.1.17-2_amd64.deb
- libmtp9_1.1.17-2_amd64.deb
(отключите телефон и после установки выйдите из системы и снова войдите в систему или перезагрузитесь для загрузки новых библиотек)
Теперь листинг файлов выполняется быстро, и я действительно могу передавать файлы.
Следующие команды, которые я запускал:
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp-common_1.1.17-2_all.deb
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp-runtime_1.1.17-2_amd64.deb
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp9_1.1.17-2_amd64.deb
sudo dpkg -i libmtp9_1.1.17-2_amd64.deb libmtp-common_1.1.17-2_all.deb libmtp-runtime_1.1.17-2_amd64.deb
В моем случае мне все равно пришлось перезагружаться, поэтому я перезагрузился. Но, как сказал плакат на панели запуска, вы должны по крайней мере выйти из сеанса X11 и снова войти в него. Затем я сделал несколько снимков, снова подключил телефон как обычно, и он мгновенно подключился и заработал как положено. Нет паузы между соединением и доступностью файловой системы gvfs
.
Примечание: Файлы предназначены для Focal Fossa (20.04), но вы можете безопасно установить их на Bionic Beaver (18.04), и это работает. Было бы здорово, если бы они сделали обновление, чтобы решить проблему в 18.04. Ну ладно...
Вы можете подумать, что ваша ОС просто скрывает automount обрабатывает от вас, как это делает мой Kubuntu 20.10. Я думаю, что это причина того, что этот вопрос поднимается так часто. Чтобы избежать этого, прочитайте эту короткую ветку здесь:
Отключение автомонтирования USB
Предложение «Возможно, исключение 'plugdev' из вашего профиля пользователя сделает это». был тот, который помог мне в конце концов! Я вышел из группы plugdev, и с тех пор все проблемы, связанные с USB-подключением моего телефона, были решены.
Лучше всего то, что вы можете изменить это в любое время, не нарушая и не испортив конфигурацию системы.