Как описано в ss-3-1415926535897932384626433, флаг отсутствует, но сначала нужно получить список файлов, а затем проверить, совпадают ли ваши локальные файлы. Я написал небольшой сценарий для этого:
#!/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
Настройте удаленную папку rfolder
и локальную папку lfolder
в соответствии с местоположением по вашему выбору.
adb-sync - небольшой, но мощный скрипт на python, который может выполнить все ваши запросы и многое другое ... https://github.com/google/adb-sync
источник
adb pull
кажется, не предоставляет флаг для извлечения выбранных файлов .В качестве обходного пути вы можете сделать следующее: Используйте,
adb shell [Unix shell command]
чтобы скопировать выбранные файлы во временную папку, а затем извлечь все файлы из этой папки.Обновление:
Вы можете использовать
cp -u [source] [destination]
команду оболочки unix для копирования только измененных файлов при последующем запуске. Вы также можете использовать-r
флаг, чтобы использовать его в рекурсивных подкаталогах, если это необходимо.источник
adb pull
в этом списке.