Conforme descrito por ss-3-1415926535897932384626433, não há sinalizador, mas é necessário obter uma lista de arquivos primeiro e depois verificar se os arquivos locais correspondem. Eu escrevi um pequeno roteiro para isso:
#!/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 a pasta remota rfolder
e a pasta local lfolder
para os locais de sua escolha.
adb-sync - pequeno, mas poderoso script python que pode fazer tudo o que você pede e mais ... https://github.com/google/adb-sync
fonte
adb pull
parece não fornecer um sinalizador para puxar os arquivos selecionados .Como solução alternativa, você pode fazer o seguinte: Use
adb shell [Unix shell command]
para copiar os arquivos selecionados para um local temporário e, em seguida, retire todos os arquivos desse local.Atualização:
Você pode usar o
cp -u [source] [destination]
comando shell unix para copiar apenas arquivos modificados na execução subsequente. Você também pode usar o-r
sinalizador para usá-lo em subdiretórios recursivos, se necessário.fonte
adb pull
-lo nessa lista.