Answers:
如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 shell命令在以后的运行中仅复制修改后的文件。如果需要,还可以使用-r
flag在子目录递归上使用它。
adb pull
在该列表上使用。