Domanda Dove sono posizionati i dispositivi MTP nel filesystem?


Ho un telefono Android che si collega al mio computer tramite MTP. Questo funziona bene; Posso vedere e trasferire file con Nautilus. Tuttavia, spesso desidero utilizzare il terminale per spostare un numero elevato di file e non riesco a trovare il dispositivo da nessuna parte nell'albero del filesystem. Nautilus riporta la posizione come mtp://[usb:003,007]/ma non è sotto /media o /mnt.

Qualcuno sa dove sia?


167
2017-09-06 20:00


origine


Possibile duplicato di Mostra il percorso accessibile "cd" al dispositivo mtp in Nemo - dimo414


risposte:


Come hai già fatto scoperto, i punti di mount sono dentro /run/user/$USER/gvfs/ (o /var/run/user/$UID/gvfs) e prendono il nome dal protocollo, dal tipo di connessione e dall'indirizzo che usano. Ciò rende le cose più difficili, perché l'indirizzo di connessione può cambiare ogni volta che si sostituisce il dispositivo, anche se si tratta della stessa porta. Se hai lo stesso dispositivo due volte, diventa anche peggio.

Puoi usare lsusb per visualizzare tutti i dispositivi USB collegati dal terminale:

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

Come avrai notato, Nautilus fornisce anche queste informazioni tramite il suggerimento. Troverete la forma codificata di ad es. mtp://[usb:002,025] in /run/user/$USER/gvfs (o /var/run/user/$UID/gvfs) come mtp:host=%5Busb%3A002%2C025%5D


Modifica di Asker: sembra richiedere una versione più recente di libmtp e / o di gvfs di quella disponibile per impostazione predefinita in 13.04. Correre sudo add-apt-repository ppa:langdalepl/gvfs-mtp e aggiornare prima di fare qualsiasi altra cosa.


Modifica: PPA non è più necessario in saucy / 13.10 e più recente, i nomi dei file sono elencati nel terminale così come sono in Nautilus.

Modifica 11-01-2016: Ho rimosso lo script precedentemente incluso in questa risposta a causa della mancanza di tempo per la manutenzione e i miglioramenti. Puoi ancora trovarlo nella cronologia delle revisioni.


124
2017-09-07 13:25



La ringrazio per la risposta. Sfortunatamente, non funziona perché i nomi delle cartelle reali (ad esempio / DCIM / Camera /) sono visibili solo in Nautilus, non nel terminale. Pertanto, $ Path / DCIM / Camera non è accessibile con rsync. - bessman
Il percorso è solo un esempio ed è diverso per i telefoni Android. Il telefono deve inoltre essere sbloccato tramite la schermata di blocco per consentire l'accesso ai dati. - LiveWireBT
Il sentiero /DCIM/Camera/ esiste sul mio telefono, ma nel terminale è chiamato /2404/2407/. Questo è il problema. Se io cd in /2404/2407/ e corri nautilus ., poi /DCIM/Camera/ è aperto. Il telefono è sbloccato, altrimenti non sarei in grado di accedervi via Nautilus, giusto? - bessman
Nota che per far funzionare tutto questo, devi avere il gvfs-fusepacchetto installato. Non tutte le versioni / versioni di Ubuntu lo hanno per impostazione predefinita (ad esempio, Ubuntu MATE 14.10 non lo fa). Senza di esso il dispositivo MTP non verrà montato come percorso locale e sarà utilizzabile solo dalle applicazioni che supportano gli URI gvfs. - user149408
Ho trovato il gvfs/ directory alla fine. Tuttavia, anziché $ USER, il percorso su questo PC è: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D - Per altri ti suggerisco di soffermarti, se non lo trovi subito. - will


La memoria del mio dispositivo Nexus è accessibile a:

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

Quindi se il tuo $ UID è 1000, puoi trovarlo sia facendo

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

oppure (per la posizione esatta in un esempio assumendo che il tuo UID sia 1000),

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

78
2018-02-15 07:39



Questo dovrebbe essere la risposta accettata dal momento che non richiede l'installazione di alcun software aggiuntivo. Grazie mille utente2529583! - NH.
Qualche idea se il mtp* nome del file può essere rinominato per l'uso in applicazioni Wine? Ingenuo mv mi da mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory (nota che il nome del file è completato dalla scheda) - Mark Jeronimus
@ Mark qualsiasi carattere è un nome di file valido in linux. Guarda se c'è un modo per rinominarlo senza mv. - Babken Vardanyan
Eccezionale. Funziona perfettamente e mi ha salvato un sacco di "prove" su Raspbian Wheezy e Jessie - Zimano


MTP dispositivo montato di solito può essere trovato in: /run/user/1000/gvfs/


per esempio se la barra degli indirizzi Nautilus mostra mtp://[usb:001,006]/, quindi puoi accedere tramite:

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

ora sul terminale è possibile copiare file o cartelle:

  • cd nella cartella -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • quindi copia le cartelle richieste nella directory corrente -> cp -r ~/videos/ .

21
2018-03-10 04:07



Funziona esattamente come dici tu. Ma quando faccio 'ls -a' è vuoto. - ycc_swe


genere mount. Questo elencherà ogni filesystem attivo.


10
2017-09-06 21:50



No, il dispositivo non viene visualizzato nell'output. - LiveWireBT
Hmm. Questo tipo di ha funzionato. L'ho trovato sotto / run / user / myusername / gvfs /. Tuttavia, tutti i nomi dei fold sono solo numeri invece dei nomi effettivi che vedo in Nautilus. In quanto tale, in realtà non risolve il mio problema perché non riesco ancora a utilizzare facilmente il terminale per spostare i file sul dispositivo. - bessman
Quando Nautilus ha il dispositivo MTP aperto, utilizzare i comandi lsof -c nautilus | less per elencare tutti i file di file che Nautilus ha aperto. - waltinator
Questo l'ha risolto per me :) - marlar


Funziona con:

  • Linux Mint 17.3
  • Samsung Galaxy S5

prova questo:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • # sì potrebbe essere una linea (questo è opzionale)
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • # Personalmente limiterei le autorizzazioni a NO-eXecute
    • # A questo punto non sono sicuro di cosa sia abbastanza montare
  5. Scollega il telefono micro-USB e il plug-in, quindi ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

produzione:

 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

produzione:

 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

Elenco di accesso alla scheda SD sul mio telefono Android. "playlist"è una directory virtuale chiamata" / Playlist "che contiene le tue playlist come file .m3u. (per man mtpfs)

Questo sembra fare il trucco. Comandi utili da ricordare ...

  • sudo mtpfs -h ... elenca le opzioni del dispositivo. Questo sembra funzionare solo prima di aver montato il dispositivo. Quindi controlla prima, forse.
  • mtp-detect ... mostra molto cose sul dispositivo (parte di mtp-tools).

Inoltre penso che tu abbia bisogno del telefono / dispositivo "sopra", apri lo screen-saver se ne hai uno in modo che il dispositivo possa connettersi.

Ho notato che il mio supporto USB-s come:

  • / Media / volontà /chiavetta USB

Quindi potrebbe essere più sensato montare sotto il tuo nome utente al posto dello stub "mtp". Leggi anche il post: "Montaggio della scheda SD Androids MTP su Ubuntu", ha alcuni suggerimenti utili ed extra.

Riferimenti:

Ho preso l'iniziativa da questi due post:


7
2018-01-11 20:11



Salve anche se funziona, trovo che l'MTP sia troppo lento e spesso lo è come se il mio PC Linux ha bloccato. Supporto gli ulteriori commenti sull'utilizzo di FTP. Ho fatto qualche ricerca e consiglio il sshelper App. È molto utile, open source e maturo. Funzionerà con Windows, Linux e Mac - O tutto ciò che supporta SSH. Facile da usare anche. Provaci. - will


Questa non è una risposta diretta al problema, ma comunque una soluzione.

Dopo aver sperimentato l'incoerenza con la connettività USB, ho aggirato il .gvfs e il sistema USB tutti insieme.

Ho installato un semplice server ftp su Android e voilà! Collegati al server (ftp con login o senza, a seconda di come scegli) da Nautilus / nemo / thunar e via.

La sincronizzazione delle cartelle viene gestita tramite OwnCloud e / o BitTorrentSync.

E l'FTP via wireless è molto più veloce di quanto lo fosse la connessione USB.


6
2017-10-27 02:11





Ho un telefono LG2 e sto eseguendo Xubuntu 15.10.

Ecco come ho montato il dispositivo nella directory mnt sotto il mio utente.

  1. Per prima cosa assicurati di aver installato i seguenti pacchetti nel tuo sistema.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Collegare il telefono come dispositivo MTP e digitare il seguente comando nel terminale.

    mtp-detect
    
  3. Rimuovere il commento user_allow_other nel file /etc/fuse.conf.

  4. Crea una directory mnt nella tua home directory.

    mkdir mnt
    
  5. Montare il dispositivo.

    jmtpfs ~/mnt
    
  6. Questo è tutto. Ora il tuo dispositivo è montato sotto il mnt directory creata in passaggio 4.

Nota: potrebbero non essere necessari alcuni passaggi. Ma seguendo i passaggi sopra ha funzionato per me.

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


6
2017-12-16 06:00





MTP è un protocollo, molto simile a FTP o SSH. Raccoglie i file quando l'utente lo richiede. Quindi non esiste un file system montato sul computer.

Usa mtpfs per farlo apparire come un file system montato.

mtpfs <a_folder_to_mount>

Non è necessario specificare il dispositivo. Se hai un solo dispositivo connesso, allora non c'è ambiguità. Non l'ho provato con più dispositivi collegati al mio computer.


4
2018-02-13 08:05