android - samsung - ¿Cómo puedo extraer TODOS los archivos de una carpeta presente en la tarjeta SD?
cómo cambiar de almacenamiento interno a tarjeta sd samsung (7)
Tengo una carpeta en mi tarjeta SD como: /mnt/sdcard/Folder1/Folder2/Folder3/*.jpg
El nombre de Folder1 y Folder2 permanece constante y dentro de Folder2 tengo Folder3, 4, 5 y así sucesivamente ... quiero extraer todos los archivos jpeg en lugar de todos los archivos (hay más) usando adb a mi directorio actual en la computadora ...
Cada carpeta tiene una cantidad diferente de archivos jpeg y otros archivos, y traté de usar esto:
adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
Pero no funcionó. Entonces, ¿cómo puedo extraer todos los archivos presentes en cualquier carpeta de la tarjeta SD con un solo comando (comando único porque cada carpeta tiene una cantidad diferente de archivos)?
Solo archivo / carpeta utilizando pull
:
adb pull "/sdcard/Folder1"
Salida:
adb pull "/sdcard/Folder1"
pull: building file list...
pull: /sdcard/Folder1/image1.jpg -> ./image1.jpg
pull: /sdcard/Folder1/image2.jpg -> ./image2.jpg
pull: /sdcard/Folder1/image3.jpg -> ./image3.jpg
3 files pulled. 0 files skipped.
Ficheros / carpetas específicos que utilizan find
desde BusyBox
:
adb shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d ''/015'' | while read line; do adb pull $line; done;
Aquí hay una explicación:
adb shell find "/sdcard/Folder1" - use the find command, use the top folder
-iname "*.jpg" - filter the output to only *.jpg files
| - passes data(output) from one command to another
tr -d ''/015'' - explained here: http://.com/questions/9664086/bash-is-removing-commands-in-while
while read line; - while loop to read input of previous commands
do adb pull $line; done; - pull the files into the current running directory, finish
Los scripts comenzarán en la carpeta superior y bajarán recursivamente y encontrarán todos los archivos "* .jpg" y los extraerán de su teléfono al directorio actual.
En Android 6 con ADB versión 1.0.32, debe colocar / detrás de la carpeta que desea copiar. Por ejemplo, adb pull "/sdcard/".
La extracción del directorio está disponible en las nuevas herramientas de Android. (No sé de qué versión se agregó, pero está trabajando en el último ADT 21.1)
adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)
Por favor, intente con solo dar la ruta desde la que desea extraer los archivos. Acabo de obtener los archivos de la tarjeta SD como
adb pull sdcard/
NO proporcione * Me gusta para ampliar la búsqueda o filtrar. ex: adb pull sdcard / *. txt -> esto no es válido.
solo da adb pull sdcard /
Sí, solo usa la barra al final para tirar recursivamente del directorio. Funciona para mí con Nexus 5 y la versión actual de adb (marzo de 2014).
Si desea extraer un directorio con acceso restringido desde un dispositivo rooteado, debe reiniciar adb como root: escriba adb root
antes de tirar. De lo contrario, remote object ''/data/data/xxx.example.app'' does not exist
un error que dice que remote object ''/data/data/xxx.example.app'' does not exist
si el uso de jellybean acaba de iniciar cmd, escriba adb devices para asegurarse de que sea legible, escriba adb pull sdcard / sdcard_ (la fecha o extra) <--- este archivo debe estar en el directorio adb de antemano. ¡LUCRO!
En otras versiones, escriba adb pull mnt / sdcard / sdcard_ (la fecha o extra)
Recuerda hacer un archivo o vas a tener un desorden o no funcionará.