Wo befinden sich MTP-gemountete Geräte im Dateisystem?

207

Ich habe ein Android-Handy, das über MTP mit meinem Computer verbunden ist. Das funktioniert gut; Ich kann mit Nautilus Dateien sehen und übertragen. Ich möchte jedoch häufig das Terminal verwenden, um eine große Anzahl von Dateien zu verschieben, und ich kann das Gerät an keiner Stelle im Dateisystembaum finden. Nautilus meldet den Ort als mtp://[usb:003,007]/, aber er ist nicht unter /mediaoder /mnt.

Weiß jemand wo es ist?

Bessman
quelle
Mögliches Duplikat des auf 'cd' angezeigten Pfads zum MTP-Gerät in Nemo
dimo414

Antworten:

154

Wie Sie bereits herausgefunden haben , befinden sich die Mountpunkte in /run/user/$USER/gvfs/(oder /var/run/user/$UID/gvfs) und sind nach dem verwendeten Protokoll, Verbindungstyp und der verwendeten Adresse benannt. Dies erschwert die Arbeit, da sich die Verbindungsadresse bei jedem erneuten Anschließen des Geräts ändern kann, selbst wenn es sich um denselben Port handelt. Wenn Sie das gleiche Gerät zweimal haben, wird es noch schlimmer.

Mit können Sie lsusballe angeschlossenen USB-Geräte vom Terminal aus anzeigen:

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

Wie Sie bemerkt haben, gibt Nautilus diese Informationen auch per Tooltip weiter. Sie finden die verschlüsselte Form von zB mtp://[usb:002,025]in /run/user/$USER/gvfs(oder /var/run/user/$UID/gvfs) alsmtp:host=%5Busb%3A002%2C025%5D


Asker's edit: Dies scheint eine neuere Version von libmtp und / oder gvfs zu erfordern, als in 13.04 standardmäßig verfügbar ist. Führen Sie das Programm aus sudo add-apt-repository ppa:langdalepl/gvfs-mtpund aktualisieren Sie es, bevor Sie etwas anderes tun.


Edit: PPA wird in saucy / 13.10 und neuer nicht mehr benötigt, Dateinamen werden im Terminal wie in Nautilus aufgelistet.

Bearbeiten 11.01.2016: Ich habe das Skript entfernt, das zuvor in dieser Antwort enthalten war, da ich zu wenig Zeit für Wartung und Verbesserungen hatte. Sie finden es immer noch im Revisionsverlauf.

LiveWireBT
quelle
Vielen Dank für Ihre Antwort. Leider funktioniert es nicht, da die tatsächlichen Ordnernamen (zB / DCIM / Camera /) nur in Nautilus sichtbar sind, nicht im Terminal. Daher kann mit rsync nicht auf $ Path / DCIM / Camera zugegriffen werden.
Bessman
2
Der Pfad ist nur ein Beispiel und unterscheidet sich für Android-Telefone. Das Telefon muss auch über den Sperrbildschirm entsperrt werden, um auf die Daten zugreifen zu können.
LiveWireBT
Der Pfad /DCIM/Camera/existiert auf meinem Telefon, wird aber im Terminal aufgerufen /2404/2407/. Das ist das Problem. Wenn ich cdrein /2404/2407/und renne nautilus ., dann /DCIM/Camera/wird geöffnet. Das Telefon ist entsperrt, sonst könnte ich nicht über Nautilus darauf zugreifen, oder?
Bessman
5
Beachten Sie, dass Sie das gvfs-fusePaket installiert haben müssen, damit dies alles funktioniert . Nicht alle Versionen / Flavors von Ubuntu haben es standardmäßig (z. B. Ubuntu MATE 14.10 nicht). Ohne diese Option wird das MTP-Gerät nicht als lokaler Pfad bereitgestellt und kann nur von Anwendungen verwendet werden, die gvfs-URIs unterstützen.
user149408
2
Ich fand das gvfs/Verzeichnis schließlich. Anstelle von $ USER lautet der Pfad auf diesem PC jedoch: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D- Für andere empfehle ich, nur herumzustöbern, wenn Sie ihn nicht sofort finden.
wird am
94

Auf den Speicher meines Nexus-Geräts kann zugegriffen werden unter:

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

Also, wenn Ihre $ UID ist 1000, können Sie es finden, indem Sie entweder tun

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

oder (für die genaue Position in einem Beispiel unter der Annahme, dass Ihre UID 1000 ist),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
Babken Vardanyan
quelle
2
Dies sollte die akzeptierte Antwort sein, da keine zusätzliche Software installiert werden muss. Vielen Dank user2529583!
NH.
Hast mtp*du eine Idee, ob der Dateiname für die Verwendung in Wine-Anwendungen umbenannt werden kann? Naive mvgibt mir mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory(beachten Sie, dass der Dateiname durch Tabulatoren vervollständigt ist)
Mark Jeronimus
@Mark jedes Zeichen ist ein gültiger Dateiname in Linux. Schau mal ob es eine Möglichkeit gibt es ohne mv umzubenennen.
Babken Vardanyan
Genial. Es funktioniert einwandfrei und hat mir viel "Ausprobieren" von Raspbian Wheezy und Jessie
Zimano
1
Ubuntu 16.04 und Honor 9 Lite. Nach dem Verbinden ist der /run/user/1000/gvfsTelefonordner leer.
LRDPRDX
25

MTP Anbaugerät in der Regel finden Sie in: /run/user/1000/gvfs/


Wenn beispielsweise Ihre Nautilus-Adressleiste angezeigt wird mtp://[usb:001,006]/, können Sie folgendermaßen zugreifen:

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

Jetzt können Sie auf dem Terminal Dateien oder Ordner kopieren:

  • cd in ordner -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • Kopieren Sie dann die gewünschten Ordner in das aktuelle Verzeichnis -> cp -r ~/videos/ .
suhailvs
quelle
2
Es funktioniert genau so, wie Sie es sagen. Aber wenn ich 'ls -a' mache, ist es leer.
ycc_swe
10

Typ mount. Damit wird jedes aktive Dateisystem aufgelistet.

Waltinator
quelle
14
Nein, das Gerät wird in der Ausgabe nicht angezeigt.
LiveWireBT
1
Hmm. Das hat funktioniert. Ich fand es unter / run / user / myusername / gvfs /. Alle Ordnernamen sind jedoch nur Zahlen anstelle der tatsächlichen Namen, die ich in Nautilus sehe. Als solches löst es mein Problem nicht wirklich, da ich das Terminal immer noch nicht einfach zum Verschieben von Dateien auf das Gerät verwenden kann.
Bessman
Wenn Nautilus das MTP-Gerät geöffnet hat, verwenden Sie die Befehle, lsof -c nautilus | lessum alle Dateien aufzulisten, die Nautilus geöffnet hat.
Waltinator
1
Das hat es für mich gelöst :)
Marlar
10

Dies funktioniert mit:

  • Linux Mint 17.3
  • Samsung Galaxy S5

Versuche dies:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #ja könnte eine Zeile sein (dies ist optional )
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #Persönlich würde ich die Berechtigungen auf NO-eXecute beschränken
    • #Zu diesem Zeitpunkt bin ich mir nicht sicher, was zum Montieren ausreicht .
  5. Ziehen Sie den Micro-USB-Stecker des Telefons heraus und stecken Sie ihn ein. Dann ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

Ausgabe:

 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

Ausgabe:

 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

Auflisten des Zugriffs auf die SD-Karte auf meinem Android-Telefon. " Playlists " ist ein virtuelles Verzeichnis mit dem Namen "/ Playlists", das Ihre Playlists als .m3u-Dateien enthält. (per man mtpfs)

Das scheint den Trick zu tun. Nützliche Befehle zum Erinnern ...

  • sudo mtpfs -h... listet die Optionen des Geräts auf. Dies scheint nur zu funktionieren, bevor Sie das Gerät gemountet haben. Also vielleicht zuerst nachsehen.
  • mtp-detect... zeigt viele Sachen über das Gerät (Teil von mtp-tool).

Außerdem denke ich, Sie müssen das Telefon / Gerät " ein ", öffnen Sie den Bildschirmschoner, wenn Sie einen haben, damit das Gerät eine Verbindung herstellen kann.

Mir ist aufgefallen, dass meine USB-s wie folgt einhängen:

  • / media / will / usbdrive

Daher ist es möglicherweise sinnvoller, unter Ihrem Benutzernamen anstelle des "mtp" -Stubs zu mounten. Lesen Sie auch den Beitrag " Einbinden Ihrer MTP Androids SD-Karte in Ubuntu ", der einige nützliche Vorschläge und Extras enthält.

Verweise:

Ich habe meine Führung von diesen zwei Beiträgen übernommen:

werden
quelle
Hallo, obwohl das funktioniert, finde ich das MTP immer noch zu langsam und oft ist es so, als ob mein Linux-PC gesperrt wäre. Ich unterstütze die weiteren Kommentare zur Verwendung von FTP. Ich habe ein bisschen gegraben und empfehle die sshelper App . Es ist sehr nützlich, offen und ausgereift. Funktioniert mit Windows, Linux und Mac - oder mit allem, was SSH unterstützt. Einfach zu bedienen. Probieren Sie es aus.
wird
8

Ich habe ein LG2-Handy und verwende Xubuntu 15.10.

So habe ich das Gerät unter meinem Benutzer in das mnt-Verzeichnis gemountet.

  1. Stellen Sie zunächst sicher, dass die folgenden Pakete auf Ihrem System installiert sind.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Schließen Sie Ihr Telefon als MTP-Gerät an und geben Sie den folgenden Befehl in Ihr Terminal ein.

    mtp-detect
    
  3. Kommentar user_allow_otherin Datei entfernen /etc/fuse.conf.

  4. Erstellen Sie ein Verzeichnis mntin Ihrem Home-Verzeichnis.

    mkdir mnt
    
  5. Montieren Sie das Gerät.

    jmtpfs ~/mnt
    
  6. Das ist es. Jetzt ist Ihr Gerät unter dem mntin Schritt 4 erstellten Verzeichnis gemountet .

Hinweis: Möglicherweise sind einige Schritte nicht erforderlich. Aber die obigen Schritte zu befolgen hat bei mir funktioniert.

Referenz: https://wiki.archlinux.org/index.php/MTP

Herz aus Stahl
quelle
6

Dies ist keine direkte Antwort auf das Problem, aber dennoch eine Lösung.

Nachdem ich Inkonsistenzen mit der USB-Konnektivität festgestellt hatte, habe ich das .gvfs- und das USB-System alle zusammen umgangen.

Ich habe einen einfachen FTP-Server auf dem Android und Voila installiert! Stellen Sie von Nautilus / nemo / thunar aus eine Verbindung zum Server her (entweder FTP mit oder ohne Anmeldung, je nach Auswahl), und schon kann es losgehen.

Die Synchronisation der Ordner erfolgt über OwnCloud und / oder BitTorrentSync.

Und FTP über WLAN ist viel schneller als die USB-Verbindung.

Nick Heywood
quelle
5

MTP ist ein Protokoll, ähnlich wie FTP oder SSH. Es ruft Dateien ab, wenn der Benutzer danach fragt. Somit befindet sich auf dem Computer kein eingehängtes Dateisystem.

Verwenden Sie mtpfs, um es wie ein eingehängtes Dateisystem erscheinen zu lassen.

mtpfs <a_folder_to_mount>

Das Gerät muss nicht angegeben werden. Wenn Sie nur ein Gerät angeschlossen haben, besteht keine Mehrdeutigkeit. Ich habe es nicht mit mehreren an meinen Computer angeschlossenen Geräten getestet.

Krishnendu
quelle
4

Ich weiß nicht genau, wie ich über das Terminal zum MTP-Standort gelangen soll. Ich habe jedoch herausgefunden, dass wir mit der rechten Maustaste auf den internen Speicher / die SD-Karte klicken und die Option "Open in Terminal" auswählen können. Dabei wird der Standort direkt im Terminal geöffnet.

Vikas Mohan
quelle
2
Ein echter Screenshot (des internen Framebuffers) wäre so viel besser als ein Foto des Bildschirms (mit einer externen Kamera).
David Foerster
1

Ich bin in der Lage Dateien auf einem MTP verbunden Android - Gerät verwalten mit gvfs-*Kommandos (zB gvfs-cp, gvfs-move...) , die auch in dem folgenden erwähnt wird Wikipedia - Artikel : gvfs .

Ich habe ein einfaches CLI-Dienstprogramm für die Dateisynchronisierung von / zu einem Android-Gerät geschrieben: https://github.com/DusanMadar/PySyncDroid

Dušan Maďar
quelle
1
Gehen Sie einfach in das Verzeichnis und verwenden Sie rsync
Evan Carroll