Como se describe en ss-3-1415926535897932384626433 no hay bandera, pero primero debe obtener una lista de archivos y luego verificar si sus archivos locales coinciden. Escribí un pequeño guión para ello:
#!/bin/sh
rfolder=/sdcard/DCIM/Camera
lfolder=Camera
adb shell ls "$rfolder" > android.files
ls -1 "$lfolder" > local.files
rm -f update.files
touch update.files
while IFS= read -r q; do
# Remove non-printable characters (are not visible on console)
l=$(echo ${q} | sed 's/[^[:print:]]//')
# Populate files to update
if ! grep -q "$l" local.files; then
echo "$l" >> update.files
fi
done < android.files
script_dir=$(pwd)
cd $lfolder
while IFS= read -r q; do
# Remove non-printable characters (are not visible on console)
l=$(echo ${q} | sed 's/[^[:print:]]//')
echo "Get file: $l"
adb pull "$rfolder/$l"
done < "${script_dir}"/update.files
Ajuste la carpeta remota rfolder
y la carpeta local lfolder
a las ubicaciones que elija.
adb-sync: script python pequeño pero potente que puede hacer todo lo que le pidas y más ... https://github.com/google/adb-sync
fuente
adb pull
no parece proporcionar una bandera para extraer los archivos seleccionados .Como solución alternativa, puede hacer esto: usar
adb shell [Unix shell command]
para copiar los archivos seleccionados a una ubicación temporal y luego extraer todos los archivos de esa ubicación.Actualización:
puede usar el
cp -u [source] [destination]
comando de shell de Unix para copiar solo los archivos modificados en la ejecución posterior. También puede usar-r
flag para usarlo en subdirectorios recursivos, si es necesario.fuente
adb pull
en esa lista.