使用多种文件的最佳方法是什么?
adb pull
Run Code Online (Sandbox Code Playgroud)
我有/sdcard/25个文件,名字如下:
gps1.trace
gps2.trace
...
gps25.trace
Run Code Online (Sandbox Code Playgroud)
通配符不起作用:
adb pull /sdcard/gps*.trace .
Run Code Online (Sandbox Code Playgroud)
小智 132
您可以使用接受通配符xargs的adb shell ls命令的结果.这允许您复制多个文件.令人讨厌的是,该adb shell ls命令的输出包括可以使用删除的换行控制字符tr -d '\r'.
例子:
adb shell 'ls sdcard/gps*.trace' | tr -d '\r' | xargs -n1 adb pull
adb shell 'ls /sdcard/*.txt' | tr -d '\r' | sed -e 's/^\///' | xargs -n1 adb pull
Run Code Online (Sandbox Code Playgroud)
Ofi*_*zon 94
adb pull 可以接收目录名而不是文件,它将拉出包含其中所有文件的目录.
在/ sdcard/gpsTraces中拉出所有gps跟踪
adb pull /sdcard/gpsTraces/ .
Run Code Online (Sandbox Code Playgroud)
递归目录的示例adb pull和adb push:
C:\Test>adb pull /data/misc/test/ .
pull: building file list...
pull: /data/misc/test/test1/test2/test.3 -> ./test1/test2/test.3
pull: /data/misc/test/test1/test2/test.2 -> ./test1/test2/test.2
pull: /data/misc/test/test1/test2/test.1 -> ./test1/test2/test.1
pull: /data/misc/test/test1/test.3 -> ./test1/test.3
pull: /data/misc/test/test1/test.2 -> ./test1/test.2
pull: /data/misc/test/test1/test.1 -> ./test1/test.1
pull: /data/misc/test/test.3 -> ./test.3
pull: /data/misc/test/test.2 -> ./test.2
pull: /data/misc/test/test.1 -> ./test.1
9 files pulled. 0 files skipped.
0 KB/s (45 bytes in 0.093s)
C:\Test>adb push . /data/misc/test/
push: ./test1/test2/test.3 -> /data/misc/test/test1/test2/test.3
push: ./test1/test2/test.2 -> /data/misc/test/test1/test2/test.2
push: ./test1/test2/test.1 -> /data/misc/test/test1/test2/test.1
push: ./test1/test.3 -> /data/misc/test/test1/test.3
push: ./test1/test.2 -> /data/misc/test/test1/test.2
push: ./test1/test.1 -> /data/misc/test/test1/test.1
push: ./test.3 -> /data/misc/test/test.3
push: ./test.2 -> /data/misc/test/test.2
push: ./test.1 -> /data/misc/test/test.1
9 files pushed. 0 files skipped.
0 KB/s (45 bytes in 0.062s)
Run Code Online (Sandbox Code Playgroud)
小智 5
即使adb pull命令开始接受远程参数的文件夹名称,我还是更喜欢使用tar命令。它提供了更大的灵活性-允许使用文件名模式(包括include和exclude),符号链接控制,保留文件权限。从Android 6.0开始,您可以使用内置的。在此之前,您必须使用第三方工具,例如busybox:
adb exec-out tar c sdcard/amazonmp3 > amazon.tar
Run Code Online (Sandbox Code Playgroud)
确保省略/路径中的引导。
我已经为Windows框创建了这个,使用通配符传输文件而不安装文件系统非常有用.您可以在路径环境中的某处包含此脚本.
adbpull.bat
@echo off
setlocal enabledelayedexpansion
if %1.==. (
echo Wilcard parameter is required.
goto end
)
for /F "tokens=* USEBACKQ" %%F in (`adb shell ls %1`) do (
set text=%%F
set mfile=!text:~0,-1!
adb pull "!mfile!"
)
:end
endlocal
Run Code Online (Sandbox Code Playgroud)
例:
adbpull /sdcard/DCIM/Camera/IMG_2016*
解析“ ls”的输出通常是一个坏主意。相反,请使用“查找”。
adb shell 'find /sdcard/ -name "gps*.trace" -print0' | xargs -0 -n 1 adb pull
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80961 次 |
| 最近记录: |