Zgodnie z opisem w ss-3-1415926535897932384626433 nie ma flagi, ale najpierw trzeba uzyskać listę plików, a następnie sprawdzić, czy pliki lokalne są zgodne. Napisałem dla niego mały skrypt:
#!/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
Dostosuj folder zdalny rfolder
i folder lokalny lfolder
do wybranych przez siebie lokalizacji.
adb-sync - mały, ale potężny skrypt Pythona, który może wykonać wszystkie pytania i wiele więcej ... https://github.com/google/adb-sync
źródło
adb pull
nie wydaje się dostarczać flagi do pobierania wybranych plików .Aby obejść ten problem, możesz to zrobić: Użyj,
adb shell [Unix shell command]
aby skopiować wybrane pliki do tymczasowej lokalizacji, a następnie pobrać wszystkie pliki z tej lokalizacji.Aktualizacja:
Możesz użyć
cp -u [source] [destination]
polecenia powłoki unix, aby skopiować tylko zmodyfikowane pliki przy kolejnym uruchomieniu. Możesz także użyć-r
flagi, aby użyć go w podkatalogach rekurencyjnych, jeśli jest to wymagane.źródło
adb pull
na tej liście.