MTP es una mierda para esa tarea - está bien para unos pocos archivos en "carpetas pequeñas", pero se atasca para carpetas con muchos archivos, o para copiar muchos archivos, o para intentar cosas en paralelo.
Al usar Linux, ADB sería una gran alternativa. Yo uso eso con adbfs-rootless , que permite montar el dispositivo de forma local en el ordenador y funciona a las mil maravillas (lo uso desde hace años, así que puedo confirmar que funciona al menos hasta Oreo).
En primer lugar, para conseguir que ADB funcione, puedes comprobarlo con ¿Cómo consigo que mi dispositivo sea detectado por ADB en Linux? . Los binarios de ADB se incluyen en los repositorios de muchas distribuciones con un nombre como android-tools-adb
para que puedas instalarlos fácilmente; o bien echa un vistazo a ¿Existe una instalación mínima de ADB? para una huella aún más pequeña.
Instalación de adbfs
es bastante sencillo si tiene las herramientas de compilación esenciales ya instaladas en su sistema: según el léeme, junto a build-essential
necesitarás libfuse-dev
y pkg-config
disponible en su sistema. La página web git
sólo es necesario si quieres clonar el repositorio de Github (alternativamente, puedes simplemente descargar el código como ZIP). cd
al directorio en el que has clonado/desempaquetado el código, y ejecuta make
. Una vez hecho esto, copie el adbfs
binario a su ruta (por ejemplo, en /usr/local/bin
o ~/bin
si lo has configurado), por lo que no necesitas especificar la ruta completa con cada llamada - y ya estás listo para usarlo.
Por último, cree un punto de montaje (un directorio vacío donde aparecerá el sistema de archivos de su dispositivo, por ejemplo mnt
en su directorio personal), y montarlo con adbfs ~/mnt
- et voila, su fiesta de la copia puede comenzar; desde la terminal o gráficamente depende de usted. Cuando haya terminado, utilice fusermount -u ~/mnt
para desmontar el dispositivo de nuevo.
Como un pequeño extra para ti: en caso de que a veces tengas varios dispositivos conectados al mismo tiempo, tendrás que configurar el ANDROID_SERIAL
para decirle a adbfs
a qué dispositivo conectarse. Aquí tienes un pequeño script que te lo pone más fácil:
case "$(adb devices|grep -v "devices"|grep -v -e '^[[:space:]]*$'|wc -l)" in
0) echo "Nothing to mount (no device attached)" ;;
1) export ANDROID_SERIAL=$(adb devices|grep -v "devices"|grep -v -e '^[[:space:]]*$'|awk '{print $1'})
adbfs /mnt/droid
;;
*) devices=''
tmpfile=$(tempfile)
adb devices -l|grep -v "devices"|grep -v -e '^[[:space:]]*$' > $tmpfile
while IFS='\n' read i
do
test="$(echo $i | awk '{print $2}')"
if [ "$test" = "device" ]; then
devices="$devices $(echo $i | awk '{print $1}')"
devices="$devices \"$(echo $i | awk '{print $5}')\""
fi
done < "$tmpfile"
rm -f -- "$tmpfile"
serial=$(whiptail --clear --menu 'Multiple devices found, make your choice:' 0 0 0 $devices 3>&1 1>&2 2>&3)
export ANDROID_SERIAL=$serial
adbfs /mnt/droid
esac
Si te preguntas por la sangría: es un fragmento de mi Midnight-Commander ( mc
). Puede insertarla allí, precediéndola de
= t d
+f ^mnt$
m Mount Droid
Por lo tanto, siempre que el punto de montaje esté resaltado por el cursor, al pulsar F2 hará que ese elemento del menú esté disponible y puedas montar fácilmente tu dispositivo. Para desmontar, aquí está el segundo elemento del menú:
+f ^mnt$
u uMount Droid
fusermount -u /mnt/droid
^mnt$
es el nombre del punto de montaje que has creado, por lo que si has utilizado un nombre diferente, también deberás ajustarlo.
Que lo disfrutes.
0 votos
Tuve el mismo problema al transferir un gran número de archivos. Se me ocurrió una solución que he mencionado en una otra respuesta aquí: Velocidad ultra lenta al transferir archivos entre el PC y el Samsung S5 .