.img
同じタイプ ( )のいくつかのファイルを/sdcard
、1 つのコマンドで電話機のパーティションにプッシュしたいと考えています。ただし、ワイルドカードは機能しません。
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;
find ({}
ファイル名を表す) の使用:
find *.img -exec adb push {} /storage/sdcard0 \;
それを行うスクリプトがあります(ダッシュ、Ubuntu Precise)。
プッシュ:
#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/ *
最初の 2 行はデバッグ用に残されています。最初の 2 行を次のように変更できます。
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