Di mana perangkat terpasang MTP terletak di sistem file?

207

Saya memiliki ponsel Android yang terhubung dengan komputer saya melalui MTP. Ini berfungsi dengan baik; Saya bisa melihat dan mentransfer file dengan Nautilus. Namun, saya sering ingin menggunakan terminal untuk memindahkan banyak file, dan sepertinya saya tidak dapat menemukan perangkat di mana saja di pohon sistem file. Nautilus melaporkan lokasi sebagai mtp://[usb:003,007]/, tetapi tidak di bawah /mediaatau /mnt.

Adakah yang tahu di mana itu?

bessman
sumber

Jawaban:

154

Seperti yang Anda telah menemukan , para mountpoints dalam /run/user/$USER/gvfs/(atau /var/run/user/$UID/gvfs) dan diberi nama setelah protokol, jenis koneksi dan alamat yang mereka gunakan. Yang membuat segalanya lebih sulit, karena alamat koneksi dapat berubah setiap kali Anda memasang kembali perangkat, bahkan jika itu adalah port yang sama. Jika Anda memiliki perangkat yang sama dua kali, itu menjadi lebih buruk.

Anda dapat menggunakan lsusbuntuk menampilkan semua perangkat USB yang terhubung dari terminal:

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

Seperti yang telah Anda perhatikan Nautilus juga memberikan informasi ini melalui tool tip. Anda akan menemukan bentuk disandikan misalnya mtp://[usb:002,025]dalam /run/user/$USER/gvfs(atau /var/run/user/$UID/gvfs) sebagaimtp:host=%5Busb%3A002%2C025%5D


Sunting Penanya: Ini tampaknya memerlukan versi libmtp dan / atau gvfs yang lebih baru daripada yang tersedia per default di 13.04. Jalankan sudo add-apt-repository ppa:langdalepl/gvfs-mtpdan perbarui sebelum melakukan hal lain.


Sunting: PPA tidak diperlukan lagi di cakep / 13.10 dan yang lebih baru, nama file terdaftar di terminal karena mereka berada di Nautilus.

Sunting 2016-01-11: Saya menghapus skrip yang sebelumnya termasuk dalam jawaban ini karena kurangnya waktu untuk pemeliharaan dan perbaikan. Anda masih dapat menemukannya di riwayat revisi.

LiveWireBT
sumber
Terima kasih atas jawaban Anda. Sayangnya, ini tidak berfungsi karena nama folder yang sebenarnya (mis. / DCIM / Kamera /) hanya terlihat di Nautilus, bukan terminal. Dengan demikian, $ Path / DCIM / Camera tidak dapat diakses dengan rsync.
bessman
2
Path hanyalah sebuah contoh dan berbeda untuk ponsel Android. Telepon juga harus dibuka melalui layar kunci untuk memungkinkan akses ke data.
LiveWireBT
Jalur /DCIM/Camera/ada di ponsel saya, tetapi di terminal itu disebut /2404/2407/. Itulah masalahnya. Jika saya cdmasuk /2404/2407/dan lari nautilus ., maka /DCIM/Camera/dibuka. Ponsel tidak terkunci, jika tidak saya tidak akan dapat mengaksesnya melalui Nautilus, kan?
bessman
5
Perhatikan bahwa agar semua ini berfungsi, Anda harus memiliki gvfs-fusepaket yang diinstal. Tidak semua versi / rasa Ubuntu memilikinya secara default (mis. Ubuntu MATE 14.10 tidak). Tanpanya perangkat MTP tidak akan dipasang sebagai jalur lokal dan hanya akan dapat digunakan oleh aplikasi yang mendukung URI gvfs.
user149408
2
Saya gvfs/akhirnya menemukan direktori. Namun alih-alih $ PENGGUNA, jalur pada PC ini adalah: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D- Untuk orang lain saya sarankan Anda hanya menyodok, jika Anda tidak segera menemukannya.
Akan
94

Memori perangkat Nexus saya dapat diakses di:

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

Jadi, jika $ UID 1000Anda, Anda mungkin menemukannya dengan melakukannya

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

atau (untuk lokasi yang tepat dalam contoh dengan asumsi UID Anda adalah 1000),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
Babken Vardanyan
sumber
2
Ini harus menjadi jawaban yang diterima karena tidak perlu menginstal perangkat lunak tambahan apa pun. Terima kasih banyak user2529583!
NH.
Adakah ide jika mtp*nama file dapat diganti namanya untuk digunakan dalam aplikasi Wine? Naif mvmemberi saya mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory(perhatikan bahwa nama file selesai tab)
Mark Jeronimus
@Mark karakter apa pun adalah nama file yang valid di linux. Lihat apakah ada cara mengganti nama tanpa mv.
Babken Vardanyan
Luar biasa. Ini berfungsi dengan sangat baik dan menyelamatkan saya banyak "mencoba" di Raspbian Wheezy dan Jessie
Zimano
1
Ubuntu 16.04 dan Honor 9 Lite. Setelah menghubungkan /run/user/1000/gvfsfolder telepon kosong.
LRDPRDX
25

MTP perangkat yang terpasang biasanya dapat ditemukan di: /run/user/1000/gvfs/


untuk misalnya jika bilah alamat Nautilus Anda menunjukkan mtp://[usb:001,006]/, maka Anda dapat mengakses dengan:

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

sekarang di terminal Anda dapat menyalin file atau folder:

  • cd ke folder -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • kemudian salin folder yang diperlukan ke direktori saat ini -> cp -r ~/videos/ .
suhailvs
sumber
2
Ini bekerja persis seperti yang Anda katakan. Tetapi ketika saya membuat 'ls-a' itu kosong.
ycc_swe
10

Jenis mount. Itu akan mendaftar setiap sistem file yang aktif.

waltinator
sumber
14
Tidak, perangkat tidak muncul di output.
LiveWireBT
1
Hmm. Semacam itu berhasil. Saya menemukannya di / run / user / myusername / gvfs /. Namun, semua nama lipat hanya angka, bukan nama sebenarnya yang saya lihat di Nautilus. Dengan demikian, itu tidak benar-benar menyelesaikan masalah saya karena saya masih tidak dapat dengan mudah menggunakan terminal untuk memindahkan file ke perangkat.
bessman
Ketika Nautilus memiliki perangkat MTP terbuka, gunakan perintah lsof -c nautilus | lessuntuk mendaftar semua file file yang telah dibuka Nautilus.
waltinator
1
Itu menyelesaikannya untuk saya :)
marlar
10

Ini bekerja dengan:

  • Linux Mint 17.3
  • Samsung Galaxy S5

coba ini:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #ya bisa menjadi satu baris (ini opsional )
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #Secara pribadi saya akan membatasi izin untuk NO-eXecute
    • #Pada titik ini saya tidak yakin apa yang cukup untuk dipasang.
  5. Cabut ponsel micro-USB dan plug-in, lalu ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

keluaran:

 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

keluaran:

 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

Mendaftar akses ke SD-card di ponsel Android saya. " Daftar Putar " adalah direktori virtual yang disebut "/ Daftar Putar" yang berisi daftar putar Anda sebagai file .m3u. (per man mtpfs)

Itu tampaknya melakukan trik. Perintah yang berguna untuk diingat ...

  • sudo mtpfs -h... mencantumkan opsi perangkat. Ini tampaknya hanya berfungsi sebelum Anda memasang perangkat. Jadi, periksa dulu, mungkin.
  • mtp-detect... menunjukkan banyak hal tentang perangkat (bagian dari mtp-tools).

Juga saya pikir Anda memerlukan ponsel / perangkat " on ", buka screen-saver jika Anda memilikinya sehingga perangkat dapat terhubung.

Saya perhatikan bahwa USB-s mount saya sebagai:

  • / media / will / usbdrive

Jadi mungkin lebih masuk akal untuk melakukan mount di bawah nama pengguna Anda alih-alih tulisan rintisan "mtp". Juga tinjau pos: " Memasang kartu SD Android MTP Anda di Ubuntu ", ia memiliki beberapa saran dan tambahan yang berguna.

referensi:

Saya mengambil kepemimpinan saya dari dua posting ini:

akan
sumber
Hai walaupun ini bekerja, saya masih menemukan MTP terlalu lambat dan sering seolah-olah PC Linux saya telah terkunci. Saya mendukung komentar lebih lanjut tentang penggunaan FTP. Saya melakukan penggalian dan merekomendasikan aplikasi sshelper . Ini sangat berguna, bersumber terbuka, dan dewasa. Akan bekerja dengan Windows, Linux dan Mac - Atau apa pun yang mendukung SSH. Mudah digunakan juga. Mencobanya.
Akan
8

Saya mendapat telepon LG2 dan saya menjalankan Xubuntu 15.10.

Ini adalah bagaimana saya memasang perangkat ke direktori mnt di bawah pengguna saya.

  1. Pertama, pastikan Anda memiliki paket-paket berikut yang diinstal di sistem Anda.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Hubungkan ponsel Anda sebagai perangkat MTP dan ketik perintah berikut di terminal Anda.

    mtp-detect
    
  3. Batalkan komentar user_allow_otherdalam file /etc/fuse.conf.

  4. Buat direktori mntdi direktori home Anda.

    mkdir mnt
    
  5. Pasang perangkat.

    jmtpfs ~/mnt
    
  6. Itu dia. Sekarang perangkat Anda dipasang di bawah mntdirektori yang dibuat pada langkah 4 .

Catatan: Mungkin ada beberapa langkah yang tidak perlu. Tetapi mengikuti langkah-langkah di atas berhasil untuk saya.

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

Hati besi
sumber
6

Ini bukan jawaban langsung untuk masalah tersebut, tetapi tetap merupakan solusi.

Setelah mengalami ketidakkonsistenan dengan konektivitas USB, saya mem-bypass .gvfs dan sistem USB secara bersamaan.

Saya memasang server ftp sederhana di android dan voila! Terhubung ke server (baik ftp dengan login atau tanpa, tergantung pada bagaimana Anda memilih) dari Nautilus / nemo / thunar dan pergi.

Sinkronisasi folder ditangani melalui OwnCloud dan / atau BitTorrentSync.

Dan FTP melalui nirkabel jauh lebih cepat daripada koneksi USB.

Nick Heywood
sumber
5

MTP adalah protokol, mirip seperti FTP atau SSH. Itu mengambil file ketika pengguna memintanya. Dengan demikian tidak ada sistem file yang terpasang di komputer.

Gunakan mtpfs untuk membuatnya tampak seperti sistem file yang dipasang.

mtpfs <a_folder_to_mount>

Tidak perlu menentukan perangkat. Jika Anda hanya memiliki satu perangkat yang terhubung, maka tidak ada ambiguitas. Saya belum mengujinya dengan beberapa perangkat yang terhubung ke komputer saya.

Krishnendu
sumber
4

Saya tidak tahu persis untuk melintasi ke lokasi MTP melalui terminal. Namun, saya mengetahui bahwa kita dapat mengklik kanan pada kartu penyimpanan / SD internal dan memilih opsi "Open in Terminal". Dengan begitu lokasi langsung dibuka di Terminal.

Vikas Mohan
sumber
2
Tangkapan layar nyata (dari framebuffer internal) akan jauh lebih baik daripada foto layar (dengan kamera eksternal).
David Foerster
1

Saya mampu mengelola file pada MTP terhubung perangkat Android menggunakan gvfs-*perintah (misalnya gvfs-cp, gvfs-move, ...) yang juga disebutkan dalam berikut artikel Wikipedia : GVFS .

Saya menulis sebuah utilitas CLI sederhana untuk sinkronisasi file ke / dari perangkat Android: https://github.com/DusanMadar/PySyncDroid

Dušan Maďar
sumber
1
Cukup buka direktori dan gunakan rsync
Evan Carroll