Où se trouvent les périphériques montés MTP dans le système de fichiers?

207

J'ai un téléphone Android qui se connecte à mon ordinateur via MTP. Cela fonctionne bien. Je peux voir et transférer des fichiers avec Nautilus. Cependant, je souhaite souvent utiliser le terminal pour déplacer un grand nombre de fichiers et il me semble impossible de trouver le périphérique dans l’arborescence du système de fichiers. Nautilus rapporte l'emplacement comme mtp://[usb:003,007]/, mais ce n'est ni en dessous /mediani en dessous /mnt.

Est-ce que quelqu'un sait où il est?

bessman
la source

Réponses:

154

Comme vous l'avez déjà constaté , les points de montage se trouvent dans /run/user/$USER/gvfs/(ou /var/run/user/$UID/gvfs) et portent le nom du protocole, du type de connexion et de l'adresse qu'ils utilisent. Cela rend les choses plus difficiles, car l'adresse de connexion peut changer à chaque fois que vous rebranchez le périphérique, même s'il s'agit du même port. Si vous avez le même appareil deux fois, cela devient encore pire.

Vous pouvez utiliser lsusbpour afficher tous les périphériques USB connectés à partir du terminal:

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

Comme vous l'avez remarqué, Nautilus fournit également ces informations via une info-bulle. Vous trouverez la forme encodée de par exemple mtp://[usb:002,025]en /run/user/$USER/gvfs(ou /var/run/user/$UID/gvfs) commemtp:host=%5Busb%3A002%2C025%5D


Asker's edit: Cela semble nécessiter une version plus récente de libmtp et / ou de gvfs par rapport à celle disponible par défaut dans 13.04. Exécuter sudo add-apt-repository ppa:langdalepl/gvfs-mtpet mettre à jour avant de faire autre chose.


Edit: PPA n'est plus nécessaire dans saucy / 13.10 et plus récent, les noms de fichiers sont listés dans le terminal comme ils le sont dans Nautilus.

Edit 2016-01-11: J'ai supprimé le script précédemment inclus dans cette réponse, faute de temps pour la maintenance et les améliorations. Vous pouvez toujours le trouver dans l'historique des révisions.

LiveWireBT
la source
Merci pour votre réponse. Malheureusement, cela ne fonctionne pas car les noms des dossiers (par exemple / DCIM / Camera /) ne sont visibles que dans Nautilus, pas dans le terminal. Ainsi, $ Path / DCIM / Camera n'est pas accessible avec rsync.
bessman
2
Le chemin est juste un exemple et est différent pour les téléphones Android. Le téléphone doit également être déverrouillé via l'écran de verrouillage pour permettre l'accès aux données.
LiveWireBT
Le chemin /DCIM/Camera/existe sur mon téléphone, mais il est appelé dans le terminal /2404/2407/. C'est le problème. Si je cddans /2404/2407/et courir nautilus ., alors /DCIM/Camera/est ouvert. Le téléphone est déverrouillé, sinon je ne pourrais pas y accéder via Nautilus, non?
bessman
5
Notez que pour que tout cela fonctionne, vous devez gvfs-fuseinstaller le paquet. Toutes les versions / versions d'Ubuntu ne l'ont pas par défaut (par exemple, Ubuntu MATE 14.10 n'en a pas). Sans cela, le périphérique MTP ne sera pas monté en tant que chemin local et ne sera utilisable que par les applications prenant en charge les URI gvfs.
user149408
2
J'ai gvfs/finalement trouvé le répertoire. Cependant, au lieu de $ USER, le chemin sur ce PC est le suivant: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D- Pour les autres, je vous suggère de fouiller, si vous ne le trouvez pas tout de suite.
sera
94

La mémoire de mon appareil Nexus est accessible à l'adresse suivante:

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

Donc, si votre $ UID est 1000, vous pouvez le trouver soit en faisant

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

ou (pour l'emplacement exact dans un exemple en supposant que votre UID est 1000),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
Babken Vardanyan
la source
2
Cela devrait être la réponse acceptée car elle ne nécessite l'installation d'aucun logiciel supplémentaire. Merci beaucoup user2529583!
NH.
Avez-vous une idée si le mtp*nom de fichier peut être renommé pour une utilisation dans les applications Wine? Naive mvme donne mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory(notez que le nom du fichier est tabulé)
Mark Jeronimus
@Mark n'importe quel caractère est un nom de fichier valide sous linux. Regardez s'il y a un moyen de le renommer sans mv.
Babken Vardanyan
Impressionnant. Cela fonctionne parfaitement bien et m'a sauvé beaucoup d'essais sur Raspbian Wheezy et Jessie
Zimano 18/12
1
Ubuntu 16.04 et Honor 9 Lite. Après la connexion du /run/user/1000/gvfsdossier du téléphone est vide.
LRDPRDX
25

MTP appareil monté peut généralement être trouvé dans: /run/user/1000/gvfs/


Par exemple, si votre barre d’adresse Nautilus indique mtp://[usb:001,006]/, vous pouvez accéder par:

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

maintenant sur le terminal, vous pouvez copier des fichiers ou des dossiers:

  • cd dans le dossier -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • puis copiez les dossiers requis dans le répertoire en cours -> cp -r ~/videos/ .
Suhailvs
la source
2
Cela fonctionne exactement comme vous le dites. Mais quand je fais 'ls -a', il est vide.
ycc_swe
10

Type mount. Cela listera tous les systèmes de fichiers actifs.

Waltinator
la source
14
Non, l'appareil ne s'affiche pas dans la sortie.
LiveWireBT
1
Hmm. Ce genre de travail. Je l'ai trouvé sous / run / user / myusername / gvfs /. Cependant, tous les noms de répertoire ne sont que des chiffres au lieu des noms que je vois dans Nautilus. En tant que tel, cela ne résout pas vraiment mon problème car je ne peux toujours pas utiliser facilement le terminal pour déplacer des fichiers vers le périphérique.
bessman
Lorsque le périphérique MTP est ouvert sur Nautilus, utilisez les commandes lsof -c nautilus | lesspour répertorier tous les fichiers ouverts par Nautilus.
Waltinator
1
Cela a résolu le problème pour moi :)
Marlar
10

Cela fonctionne avec:

  • Linux Mint 17.3
  • Samsung Galaxy S5

essaye ça:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #oui pourrait être une ligne (c'est facultatif )
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #Personnellement, je limiterais les autorisations à NO-eXecute
    • #À ce stade, je ne suis pas sûr de ce qui est suffisant pour monter.
  5. Débranchez le téléphone micro-USB et plug-in, puis ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

sortie:

 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

sortie:

 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

Liste des accès à la carte SD sur mon téléphone Android. " Playlists " est un répertoire virtuel appelé "/ Playlists" qui contient vos playlists sous forme de fichiers .m3u. (per man mtpfs)

Cela semble faire l'affaire. Commandes utiles à retenir ...

  • sudo mtpfs -h... répertorie les options de l'appareil. Cela semble fonctionner uniquement avant que vous ayez monté l'appareil. Alors, vérifiez d'abord, peut-être.
  • mtp-detect... montre beaucoup de choses sur le périphérique (partie de mtp-tools).

De plus, je pense que vous avez besoin du téléphone / de l'appareil " en ", ouvrez l'économiseur d'écran si vous en avez un pour que l'appareil puisse se connecter.

J'ai remarqué que mon USB-s monter comme:

  • / media / will / usbdrive

Il serait donc peut-être plus logique de monter sous votre nom d'utilisateur au lieu du stub "mtp". Consultez également le post: " Montage de votre carte SD MTP Androids sur Ubuntu ", il contient quelques suggestions utiles et des extras.

références:

J'ai pris mon avance de ces deux postes:

volonté
la source
Bonjour, bien que cela fonctionne, je trouve toujours le MTP trop lent et c’est souvent comme si mon PC Linux était verrouillé. Je soutiens les commentaires supplémentaires sur l'utilisation de FTP. J'ai fait quelques recherches et recommandé l' application sshelper . C'est très utile, open source et mature. Fonctionnera avec Windows, Linux et Mac - ou tout ce qui prend en charge SSH. Facile à utiliser aussi. Essayez.
sera
8

J'ai un téléphone LG2 et j'utilise Xubuntu 15.10.

Voici comment j'ai monté l'appareil dans le répertoire mnt sous mon utilisateur.

  1. Tout d’abord, assurez-vous que les packages suivants sont installés sur votre système.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Connectez votre téléphone en tant que périphérique MTP et tapez la commande suivante dans votre terminal.

    mtp-detect
    
  3. Ne commentez pas user_allow_otherdans le fichier /etc/fuse.conf.

  4. Créez un répertoire mntdans votre répertoire personnel.

    mkdir mnt
    
  5. Montez l'appareil.

    jmtpfs ~/mnt
    
  6. C'est ça. Votre appareil est maintenant monté dans le mntrépertoire créé à l' étape 4 .

Remarque: Certaines étapes peuvent être inutiles. Mais suivre les étapes ci-dessus a fonctionné pour moi.

Référence: https://wiki.archlinux.org/index.php/MTP

Coeur de pierre
la source
6

Ce n'est pas une réponse directe au problème, mais une solution quand même.

Après avoir constaté des incohérences avec la connectivité USB, j'ai contourné le système .gvfs et le système USB.

J'ai installé un simple serveur ftp sur android et le tour est joué! Connectez-vous au serveur (via ftp avec ou sans login, selon votre choix) depuis Nautilus / nemo / thunar et c'est parti.

La synchronisation des dossiers est gérée par OwnCloud et / ou BitTorrentSync.

Et le FTP sur le réseau sans fil est bien plus rapide que la connexion USB.

Nick Heywood
la source
5

MTP est un protocole, un peu comme FTP ou SSH. Il récupère les fichiers lorsque l'utilisateur le demande. Ainsi, il n'y a pas de système de fichiers monté sur l'ordinateur.

Utilisez mtpfs pour qu’il apparaisse comme un système de fichiers monté.

mtpfs <a_folder_to_mount>

Pas besoin de spécifier le périphérique. Si vous n'avez qu'un seul appareil connecté, il n'y a aucune ambiguïté. Je ne l'ai pas testé avec plusieurs périphériques connectés à mon ordinateur.

Krishnendu
la source
4

Je ne sais pas exactement comment se rendre à l'emplacement MTP via un terminal. Cependant, j'ai découvert que nous pouvions cliquer avec le bouton droit de la souris sur la carte de stockage interne / SD et choisir l'option "Ouvrir dans le terminal". Ce faisant, l'emplacement est directement ouvert dans Terminal.

Vikas Mohan
la source
2
Une vraie capture d'écran (du framebuffer interne) serait bien meilleure qu'une photo de l'écran (avec une caméra externe).
David Foerster
1

Je suis en mesure de gérer des fichiers sur un MTP connecté appareil Android à l' aide des gvfs-*commandes (par exemple gvfs-cp, gvfs-move...) qui sont également mentionnés ci - après l' article de Wikipédia : GVfs .

J'ai écrit un utilitaire CLI simple pour la synchronisation de fichiers vers / depuis un périphérique Android: https://github.com/DusanMadar/PySyncDroid.

Dušan Maďar
la source
1
Il suffit d'aller dans le répertoire et d'utiliser rsync
Evan Carroll