我想用一个命令将一些相同类型的文件(.img
)推送到手机的/sdcard
分区。但通配符不起作用:
adb push *.img /sdcard/
有什么方法可以实现吗?
答案 0 :(得分:49)
将*.img
个文件复制到空目录,然后按目录(adb push /tmp/images /storage/sdcard0
)。 adb
会将该目录中的所有文件推送到指定位置。
BTW,/sdcard
作为路径已经过时了很长时间,因此请确保使用存在且受设备支持的目的地。大多数Android 2.x / 3.x / 4.0设备使用/mnt/sdcard
; Android 4.1使用/storage/sdcard0
。
答案 1 :(得分:19)
从我的脑海里回复文件......
for i in *.img; do echo $i; adb push "$i" /sdcard/; done;
答案 2 :(得分:7)
假设您正在使用 Windows ,您可以使用for循环查找带有扩展名的文件,并在命令行中使用该文件执行adb推送
for %i in (*.img) do adb push %i /sdcard/folderName/%i
如果您将其保存为批处理文件,请确保在“%i”之前添加额外的“%”,如下所示
for %%i in (*.img) do adb push %%i /sdcard/folderName/%%i
如果你使用 Ubuntu ,你可以使用这个基本上做同样事情的命令
for f in *.img; do adb push $f /sdcard/folderName/$f; done
希望它有所帮助:)
答案 3 :(得分:4)
使用find({}
代表文件名):
find *.img -exec adb push {} /storage/sdcard0 \;
答案 4 :(得分:1)
我有一个脚本(dash,Ubuntu Precise)。
mpush:
#D=echo
D=
S=
if [ $1 == "-s" ]; then
S="-s $2"
shift
shift
fi
if [ $# -lt 2 ]; then
echo "Usage: $0 directory files..."
else
DIR=$1
shift
for f in $*
do
#echo "Processing $DIR/$f file..."
echo ~/aspt/adb ${S} push "$f" "$DIR/$f"
${D} ~/aspt/adb ${S} push "$f" "$DIR/$f"
done
fi
用法:
mpush /sdcard/ libMyLib.so
mpush /sdcard/ libFirst.so libSecond.so
mpush /sdcard/ *
mpush -s 109d8a6fe0678a3 /sdcard/ *
前两行用于调试:您可以将前两行更改为
D=echo
#D=
让脚本打印adb push
命令而不是执行它们。
更新:增加了推送到所有连接设备(-all
开关)
#D=echo
D=
S=
if [ $1 == "-2all" -o $1 == "-all" ]; then
shift
DEVICES=`~/aspt/adb devices | tail -n +2 | awk '{print $1}'`
if [ $# -lt 2 ]; then
echo "Usage: $0 [options] directory files..."
echo "Options:"
echo "-s device-id -- push to the specified device"
echo "-all or -2all -- push to all devices"
else
DIR=$1
shift
for d in $DEVICES
do
for f in $*
do
#echo "Processing $DIR/$f file..."
echo ~/aspt/adb -s $d push "$f" "$DIR/$f"
${D} ~/aspt/adb -s $d push "$f" "$DIR/$f"
done
done
fi
else
if [ $1 == "-s" ]; then
S="-s $2"
shift
shift
fi
if [ $# -lt 2 ]; then
echo "Usage: $0 [options] directory files..."
echo "Options:"
echo "-s device-id -- push to the specified device"
echo "-all or -2all -- push to all devices"
else
DIR=$1
shift
for f in $*
do
#echo "Processing $DIR/$f file..."
echo ~/aspt/adb ${S} push "$f" "$DIR/$f"
${D} ~/aspt/adb ${S} push "$f" "$DIR/$f"
done
fi
fi