182 votos

Donde se MTP dispositivos montados encuentra en el sistema de ficheros?

Tengo un teléfono Android que se conecta con el ordenador a través de MTP. Esto funciona bien; puedo ver y transferir archivos con Nautilus. Sin embargo, a menudo me desea utilizar el terminal para mover grandes cantidades de archivos, y me parece no puede encontrar el dispositivo en cualquier lugar en el árbol del sistema de ficheros. Nautilus informes de la ubicación de mtp://[usb:003,007]/, pero no bajo /media o /mnt.

¿Alguien sabe de donde es?

85voto

switz Puntos 4282

Mi Nexus de memoria del dispositivo puede ser consultado en:

/run/user/1000/gvfs

donde 1000 es mi ID de usuario.

10voto

David Grant Puntos 8477

Asker edición: Esto parece requerir una versión más reciente de libmtp y/o gvfs que está disponible por defecto en 13.04. Ejecutar sudo add-apt-repository ppa:langdalepl/gvfs-mtp y actualización antes de hacer nada.


Edit: PPA ya no se necesita más en descarado/13.10, nombres de archivo que se enumeran en la terminal como en Nautilus.


Como ya se ha descubierto, los puntos de montaje son en /run/user/$USER/gvfs/ y nombre a partir del protocolo, tipo de conexión y la dirección a la que uso. Que hace las cosas más difíciles, porque la dirección de conexión pueden cambiar cada vez que nos enchufamos el dispositivo, incluso si es el mismo puerto. Si usted tiene el mismo dispositivo dos veces se pone aún peor.

Usted puede utilizar lsusb a mostrar todos los dispositivos USB conectados desde la terminal:

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

Como usted ha notado Nautilus también da esta información a través de la punta de la herramienta. Va a encontrar la forma de codificación de por ejemplo mtp://[usb:002,025] en /run/user/$USER/gvfs como mtp:host=%5Busb%3A002%2C025%5D

Un script de shell tendría este aspecto:

#/bin/bash

# Find the path to MTP/PTP connected device by USB ID
find_path_by_usbid () {
        lsusboutput="$(lsusb -d $1 | head -n1)"
        usbbus="${lsusboutput% Device*}"
        usbbus="${usbbus#Bus }"
        usbdevice="${lsusboutput%%:*}"
        usbdevice="${usbdevice#*Device }"

        # Media Transfer Protocol
        if [ -d "$XDG_RUNTIME_DIR" ]; then
            runtimedir="$XDG_RUNTIME_DIR"
        else
            runtimedir="/run/user/$USER"
        fi
        MtpPath="$runtimedir/gvfs/mtp:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
        # Picture Transfer Protocol
        PtpPath="$runtimedir/gvfs/gphoto2:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"

        if [ -d "$MtpPath" ]; then
                echo "$MtpPath"
        elif [ -d "$PtpPath" ]; then
                echo "$PtpPath"
        else
                echo "Error: File or directory was not found." 
        fi
}

# USB ID for Nexus 4
Id="18d1:4ee2"
DevicePath="$(find_path_by_usbid $Id)"

# Backup pictures if device is connected
if [ "$DevicePath" == "Error: File or directory was not found." ]; then
        echo "$DevicePath"
        exit
else
        rsync -av --progress $DevicePath/DCIM/Camera/ ~/Pictures/Backup_Nexus4/
fi

10voto

waltinator Puntos 7011

Tipo mount. Que mostrará la lista de todos los activos del sistema de ficheros.

6voto

Nick Heywood Puntos 51

Esto no es una respuesta directa al problema, sino una solución, no obstante.

Después de experimentar la inconsistencia con conectividad USB, se me pasó por alto la .gvfs y USB, sistema de todos juntos.

He instalado un simple servidor ftp en el android y ¡voilá! Conectar con el servidor (ftp con el inicio de sesión o no, dependiendo de cómo usted elige) desde Nautilus/nemo/thunar y listo.

Syncronisation de carpetas se maneja a través de OwnCloud y/o BitTorrentSync.

Y el FTP a través de la red inalámbrica es la manera más rápida que la conexión USB.

4voto

Krishnendu Puntos 31

MTP es un protocolo, como FTP o SSH. Recupera los archivos cuando el usuario pide. Por lo tanto no hay ningún sistema de archivos montado en el equipo.

Uso mtpfs con el fin de hacer que parezca como un sistema de archivos montado.

mtpfs <a_folder_to_mount>

No hay necesidad de especificar el dispositivo. Si sólo tiene un dispositivo conectado, entonces no hay ninguna ambigüedad. No lo he probado con varios dispositivos conectados a mi ordenador.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: