อุปกรณ์ที่เมาท์ MTP อยู่ที่ไหนในระบบไฟล์?


207

ฉันมีโทรศัพท์ Android ที่เชื่อมต่อกับคอมพิวเตอร์ของฉันผ่าน MTP มันใช้งานได้ดี ฉันสามารถดูและถ่ายโอนไฟล์ด้วย Nautilus อย่างไรก็ตามฉันมักต้องการใช้เทอร์มินัลเพื่อย้ายไฟล์จำนวนมากและดูเหมือนว่าฉันไม่สามารถค้นหาอุปกรณ์ได้ทุกที่ในแผนผังระบบไฟล์ Nautilus รายงานตำแหน่งเป็นmtp://[usb:003,007]/แต่มันไม่อยู่ภายใต้หรือ/media/mnt

ไม่มีใครรู้ว่ามันอยู่ที่ไหน?


คำตอบ:


154

ตามที่คุณค้นพบแล้วจุดเมานท์นั้นอยู่ใน/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: ฉันลบสคริปต์ที่ก่อนหน้านี้รวมอยู่ในคำตอบนี้เนื่องจากไม่มีเวลาสำหรับการบำรุงรักษาและการปรับปรุง คุณยังสามารถค้นหาได้ในประวัติการแก้ไข


ขอบคุณสำหรับคำตอบ. น่าเสียดายที่มันไม่ทำงานเพราะชื่อโฟลเดอร์จริง (เช่น / DCIM / Camera /) จะปรากฏเฉพาะใน Nautilus ไม่ใช่เทอร์มินัล ดังนั้น $ Path / DCIM / Camera จึงไม่สามารถเข้าถึงได้ด้วย rsync
bessman

2
เส้นทางเป็นเพียงตัวอย่างและแตกต่างสำหรับโทรศัพท์ Android โทรศัพท์จะต้องปลดล็อคผ่านหน้าจอล็อคเพื่อให้สามารถเข้าถึงข้อมูลได้
LiveWireBT

เส้นทางที่/DCIM/Camera/มีอยู่ในโทรศัพท์ของฉัน แต่ใน terminal /2404/2407/มันถูกเรียกว่า นั่นแหละปัญหา. หากฉันcdเข้า/2404/2407/และวิ่งnautilus .จากนั้น/DCIM/Camera/จะเปิดขึ้น ปลดล็อคโทรศัพท์ไม่เช่นนั้นฉันจะไม่สามารถเข้าถึงได้ผ่าน Nautilus ใช่ไหม
bessman

5
โปรดทราบว่าเพื่อให้การดำเนินการทั้งหมดนี้คุณต้องมีgvfs-fuseแพ็คเกจที่ติดตั้ง ไม่ใช่ทุกรุ่น / รสชาติของ Ubuntu ที่เป็นค่าเริ่มต้น (เช่น Ubuntu MATE 14.10) หากไม่มีอุปกรณ์ MTP จะไม่ได้รับการเมานต์เป็นพา ธ ในพื้นที่และจะสามารถใช้งานได้โดยแอปพลิเคชันที่รองรับ gvfs URIs เท่านั้น
user149408

2
ฉันพบgvfs/ไดเรกทอรีในที่สุด อย่างไรก็ตามแทนที่จะเป็น $ USER เส้นทางบนพีซีนี้คือ: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D- สำหรับคนอื่น ๆ ฉันขอแนะนำให้คุณลองดูถ้าคุณไม่พบมันในทันที
จะมี

94

หน่วยความจำอุปกรณ์ Nexus ของฉันสามารถเข้าถึงได้ที่:

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

ดังนั้นหาก $ UID ของคุณคือ1000คุณอาจพบได้โดยทำอย่างใดอย่างหนึ่ง

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

หรือ (สำหรับตำแหน่งที่แน่นอนในตัวอย่างสมมติว่า UID ของคุณคือ 1,000)

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

2
นี่ควรเป็นคำตอบที่ยอมรับได้เนื่องจากไม่ต้องการติดตั้งซอฟต์แวร์เพิ่มเติม ขอบคุณมาก user2529583!
นิวแฮมป์เชียร์

มีความคิดใดmtp*บ้างหากชื่อไฟล์สามารถเปลี่ยนชื่อเพื่อใช้ในแอปพลิเคชันไวน์ได้ ไร้เดียงสาmvให้ฉันmv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory(โปรดทราบว่าชื่อไฟล์เสร็จสมบูรณ์แล้วแท็บ)
Mark Jeronimus

@ Mark ตัวละครใด ๆ ที่เป็นชื่อไฟล์ที่ถูกต้องใน linux ดูว่ามีวิธีเปลี่ยนชื่อโดยไม่มี mv หรือไม่
Babken Vardanyan

น่ากลัว มันทำงานได้อย่างสมบูรณ์แบบและช่วยให้ฉัน "ทดลอง" กับ Raspbian Wheezy และ Jessie ได้เป็นอย่างดี
Zimano เมื่อ

1
Ubuntu 16.04 และ Honor 9 Lite หลังจากเชื่อมต่อ/run/user/1000/gvfsโฟลเดอร์โทรศัพท์ว่างเปล่า
LRDPRDX

25

MTP อุปกรณ์ที่ติดตั้งมักจะสามารถพบได้ใน: /run/user/1000/gvfs/


สำหรับเช่นถ้าแถบที่อยู่ Nautilus ของคุณแสดงmtp://[usb:001,006]/ขึ้นมาคุณสามารถเข้าถึงได้โดย:

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

บนเทอร์มินัลคุณสามารถคัดลอกไฟล์หรือโฟลเดอร์:

  • cd ลงในโฟลเดอร์ -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • จากนั้นคัดลอกโฟลเดอร์ที่ต้องการไปยังไดเรกทอรีปัจจุบัน -> cp -r ~/videos/ .

2
มันทำงานได้เหมือนที่คุณพูด แต่เมื่อฉันทำ 'ls -a' มันว่างเปล่า
ycc_swe

10

ประเภทmount. ที่จะแสดงรายการทุกระบบไฟล์ที่ใช้งานอยู่


14
ไม่อุปกรณ์ไม่แสดงในเอาต์พุต
LiveWireBT

1
อืมมม งานประเภทนั้น ฉันพบว่าภายใต้ / run / user / myusername / gvfs / อย่างไรก็ตามชื่อเล่นทั้งหมดเป็นเพียงตัวเลขแทนที่จะเป็นชื่อจริงที่ฉันเห็นใน Nautilus เช่นนี้มันไม่ได้แก้ปัญหาของฉันเพราะฉันยังไม่สามารถใช้เทอร์มินัลเพื่อย้ายไฟล์ไปยังอุปกรณ์ได้อย่างง่ายดาย
bessman

เมื่อ Nautilus เปิดอุปกรณ์ MTP ให้ใช้คำสั่งlsof -c nautilus | lessเพื่อแสดงรายการไฟล์ไฟล์ทั้งหมดที่ Nautilus เปิด
waltinator

1
ที่แก้ไขได้สำหรับฉัน :)
Marlar

10

สิ่งนี้ใช้ได้กับ:

  • Linux Mint 17.3
  • Samsung Galaxy S5

ลองนี้:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #ใช่อาจเป็นหนึ่งบรรทัด (เป็นตัวเลือก )
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #ส่วนตัวฉันจะ จำกัด การอนุญาตNO-eXecute
    • #ณ จุดนี้ฉันไม่แน่ใจว่ามีอะไรเพียงพอที่จะเมานต์
  5. ถอดปลั๊ก micro-USB และปลั๊กอินของโทรศัพท์แล้ว ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. 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
  1. 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 ของฉัน " Playlists " เป็นไดเรกทอรีเสมือนชื่อ "/ Playlists" ซึ่งมีเพลย์ลิสต์ของคุณเป็นไฟล์. m3u (ต่อman mtpfs)

ดูเหมือนว่าจะทำเคล็ดลับ คำสั่งที่มีประโยชน์ที่ต้องจำ ...

  • sudo mtpfs -h... แสดงรายการตัวเลือกของอุปกรณ์ ดูเหมือนว่าจะใช้ได้เฉพาะก่อนที่คุณจะติดตั้งอุปกรณ์ ดังนั้นตรวจสอบก่อนออกบางที
  • mtp-detect... แสดงสิ่งต่าง ๆ มากมายเกี่ยวกับอุปกรณ์ (ส่วนหนึ่งของเครื่องมือ mtp)

นอกจากนี้ผมคิดว่าคุณต้องโทรศัพท์ / อุปกรณ์ " ใน " เปิดโปรแกรมรักษาหน้าจอถ้าคุณมีหนึ่งเพื่อให้อุปกรณ์สามารถเชื่อมต่อ

ฉันสังเกตเห็นว่าเมานท์ USB ของฉันเป็น:

  • / media / will / usbdrive

ดังนั้นจึงควรใช้ชื่อผู้ใช้ของคุณแทน stub "mtp" ตรวจสอบการโพสต์: "การติดตั้ง SD- การ์ด Android MTP ของคุณบน Ubuntu " มันมีคำแนะนำและความพิเศษที่เป็นประโยชน์เล็กน้อย

อ้างอิง:

ฉันนำของฉันจากทั้งสองโพสต์:


สวัสดีแม้ว่านี่จะใช้งานได้ แต่ฉันก็ยังพบว่า MTP ช้าเกินไปและบ่อยครั้งราวกับว่าพีซีของฉันถูกล็อค ฉันสนับสนุนความคิดเห็นเพิ่มเติมเกี่ยวกับการใช้ FTP ฉันไม่บางขุดและแนะนำsshelperแอป มันมีประโยชน์มากเปิดแหล่งที่มาและเป็นผู้ใหญ่ จะทำงานกับ Windows, Linux และ Mac - หรืออะไรก็ได้ที่รองรับ SSH ใช้งานง่ายเกินไป ปล่อยมันไป.
จะ

8

ฉันได้รับโทรศัพท์ LG2 และฉันใช้ Xubuntu 15.10

นี่คือวิธีที่ฉันติดตั้งอุปกรณ์เพื่อไดเรกทอรี mnt ภายใต้ผู้ใช้ของฉัน

  1. ก่อนอื่นให้แน่ใจว่าคุณได้ติดตั้งแพ็คเกจต่อไปนี้ในระบบ

    sudo apt-get install jmtpfs mtp-tools
    
  2. เชื่อมต่อโทรศัพท์ของคุณเป็นอุปกรณ์ MTP และพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ

    mtp-detect
    
  3. uncomment ในแฟ้มuser_allow_other/etc/fuse.conf

  4. สร้างไดเรกทอรีmntในไดเรกทอรีบ้านของคุณ

    mkdir mnt
    
  5. เมานต์อุปกรณ์

    jmtpfs ~/mnt
    
  6. แค่นั้นแหละ. ตอนนี้อุปกรณ์ของคุณจะติดตั้งอยู่ภายใต้mntไดเรกทอรีสร้างขึ้นในขั้นตอนที่ 4

หมายเหตุ: อาจมีบางขั้นตอนที่ไม่จำเป็น แต่ทำตามขั้นตอนข้างต้นได้ผลสำหรับฉัน

การอ้างอิง: https://wiki.archlinux.org/index.php/MTP


6

นี่ไม่ใช่คำตอบสำหรับปัญหาโดยตรง แต่เป็นการแก้ปัญหา

หลังจากประสบความไม่สอดคล้องกับการเชื่อมต่อ USB ฉันข้ามระบบ. gvfs และ USB เข้าด้วยกัน

ฉันติดตั้งเซิร์ฟเวอร์ ftp ง่าย ๆ บน Android และ voila! เชื่อมต่อกับเซิร์ฟเวอร์ (ทั้ง ftp ด้วยการเข้าสู่ระบบหรือไม่ขึ้นอยู่กับว่าคุณเลือก) จาก Nautilus / nemo / thunar และออกไป

Syncronisation ของโฟลเดอร์ได้รับการจัดการผ่าน OwnCloud และ / หรือ BitTorrentSync

และ FTP ผ่านไร้สายนั้นเร็วกว่าการเชื่อมต่อ USB


5

MTP เป็นโปรโตคอลเช่น FTP หรือ SSH มันดึงไฟล์เมื่อผู้ใช้ถามมัน ดังนั้นจึงไม่มีระบบไฟล์ที่เมาท์บนคอมพิวเตอร์

ใช้ mtpfs เพื่อให้ดูเหมือนเป็นระบบไฟล์ที่เมาท์

mtpfs <a_folder_to_mount>

ไม่จำเป็นต้องระบุอุปกรณ์ หากคุณมีอุปกรณ์เชื่อมต่อเพียงหนึ่งเดียวก็จะไม่มีความคลุมเครือ ฉันไม่ได้ทดสอบกับอุปกรณ์หลายเครื่องที่เชื่อมต่อกับคอมพิวเตอร์ของฉัน


4

ฉันไม่รู้ว่าจะข้ามไปยังตำแหน่ง MTP ผ่านทางเทอร์มินัลได้อย่างไร อย่างไรก็ตามฉันพบว่าเราสามารถคลิกขวาบนที่เก็บข้อมูลภายใน / การ์ด SD และเลือกตัวเลือก "เปิดในเทอร์มินัล" การทำเช่นนั้นจะเปิดตำแหน่งในเทอร์มินัลโดยตรง


2
ภาพหน้าจอจริง (ของ framebuffer ภายใน) จะดีกว่าภาพถ่ายของหน้าจอ (ด้วยกล้องภายนอก)
David Foerster

1

ฉันสามารถจัดการไฟล์บน MTP เชื่อมต่ออุปกรณ์ Android โดยใช้gvfs-*คำสั่ง (เช่นgvfs-cp, gvfs-move, ... ) ซึ่งได้รับการกล่าวถึงในต่อไปนี้บทความวิกิพีเดีย : GVfs

ฉันเขียนอรรถประโยชน์ CLI อย่างง่ายสำหรับการซิงโครไนซ์ไฟล์ไปยัง / จากอุปกรณ์ Android: https://github.com/DusanMadar/PySyncDroid


1
เพียงไปที่ไดเรกทอรีและใช้rsync
Evan Carroll
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.