pushはホストから端末へ、pullは端末からホストへファイルを転送するサブコマンドである。

pushでホストから端末へファイルを転送する

引数にはローカルのパスと転送先の端末側のパスを指定する。

$ adb push sample.txt /sdcard/Download/sample.txt
sample.txt: 1 file pushed, 0 skipped. 0.1 MB/s (16 bytes in 0.000s)

ディレクトリを指定すると、配下のファイルをまとめて転送できる。

$ adb push adb-assets/. /sdcard/Download/adb-assets/
adb-assets/./: 2 files pushed, 0 skipped. 0.0 MB/s (17 bytes in 0.038s)

pullで端末からホストへファイルを転送する

引数の順序がpushと逆になり、端末側のパスを先に指定する。

$ adb pull /sdcard/Download/sample.txt pulled_sample.txt
/sdcard/Download/sample.txt: 1 file pulled, 0 skipped. 0.0 MB/s (16 bytes in 0.002s)

$ cat pulled_sample.txt
hello from host

--syncで更新分のみpushする

push--syncを付けると、ホスト側と端末側でタイムスタンプが異なるファイルだけを転送する。変更がないファイルは転送されずスキップされる。

$ adb push --sync adb-assets/. /sdcard/Download/adb-assets/
adb-assets/./: 0 files pushed, 2 skipped.

一部のファイルだけ変更した状態で--syncを実行すると、変更したファイルだけが転送される。

$ echo "config-v2" > adb-assets/config.txt
$ adb push --sync adb-assets/. /sdcard/Download/adb-assets/
adb-assets/./: 1 file pushed, 1 skipped. 0.0 MB/s (10 bytes in 0.039s)

--syncpushのオプションであり、pullには存在しない。