我想用一個命令將一些相同類型的文件(.img
)推送到手機的/sdcard
分區。但通配符不起作用:ADB用同一個擴展名用一個命令推送多個文件
adb push *.img /sdcard/
有沒有什麼辦法可以實現呢?
我想用一個命令將一些相同類型的文件(.img
)推送到手機的/sdcard
分區。但通配符不起作用:ADB用同一個擴展名用一個命令推送多個文件
adb push *.img /sdcard/
有沒有什麼辦法可以實現呢?
將*.img
文件複製到空目錄,然後按目錄(adb push /tmp/images /storage/sdcard0
)。 adb
會將該目錄中的所有文件推送到指定位置。
順便說一下,/sdcard
作爲一個路徑已經過時了相當長的一段時間,所以請確保您使用的目標存在並支持您的設備。大多數Android 2.x/3.x/4.0設備使用/mnt/sdcard
; Android 4.1使用/storage/sdcard0
。
從我的腦海裏迴響着與文件...
for i in *.img; do echo $i; adb push "$i" /sdcard/; done;
我相信這可以工作(請注意,'/ sdcard /'已過時,正如接受的答案所暗示的那樣),但是您應該驗證它是否確實並將您的答案格式化得更好一些。 – MasterAM
@znt:我修好了。 –
使用find({}
代表文件名):
find *.img -exec adb push {} /storage/sdcard0 \;
我有一個腳本,做它(破折號,Ubuntu的精確) 。
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
命令執行它們。
UPDATE:加推到所有連接的設備的能力(在-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
假設你正在使用的Windows,您可以使用一個for循環來找到一個擴展名的文件,做一個亞行在命令行像這樣的文件推
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
希望它能幫助:)
嗯,我已經做了「文件夾中招」,但我想知道亞洲開發銀行是否支持通配符。嗯,我從來沒有遇到過/ sdcard /的問題,但是我在Galaxy Nexus中只使用4.1.1(最近4.1.2版本)。感謝您的回答! – john
@john:「我想知道亞洲開發銀行是否支持通配符」 - 它似乎沒有。 – CommonsWare
在這種情況下,我正在考慮您建議作爲答案的文件夾技巧。再次感謝! – john