PCとAndroid端末間でadbコマンドを通じてファイルのやりとりを行う
Requirements
Android側での設定が終わっていること koko206.hatenablog.com
adb(Android Debug Bridge)が使えること
- ターミナルでadbコマンドが以下のように反応したら設定OKです
$ adb Android Debug Bridge version 1.0.41 Version 31.0.2-7242960 Installed as /Users/kokoichi/Library/Android/sdk/platform-tools/adb global options: ....
Androidの端末に入ってみる
Android端末をPCに繋げた状態で、adb shell
とターミナルで打つ
$ adb shell
hammerhead:/ $
hammerhead:/ $ ls
acct d etc mnt product system
apex data firmware odm res system_ext
bin data_mirror init oem sdcard tombstones
bugreports debug_ramdisk init.environ.rc persist sepolicy vendor
cache default.prop linkerconfig postinstall storage vtc
config dev lost+found proc sys
Linuxみたいに沢山の設定フォルダなどが出てきた!
個人のデータなどは「sdcard」に入ってることが多いので、とりあえずその中を見てみる
hammerhead:/ $ cd sdcard/ hammerhead:/sdcard $ ls Alarms Audiobooks Documents Movies Notifications Podcasts Android DCIM Download Music Pictures Ringtones
PCのフォルダ構成と似ていてなんとなくわかると思います
PC ⇨ Android にファイルを送る
PC側のターミナルで操作を行いたいので、以前の操作でAndroid shellにいる人はexit
コマンドで抜けましょう
hammerhead:/sdcard $ exit
~ $
ファイルの送り方
以下のコマンドで実行します
adb push [ファイル名] [送りたい場所]
push
でPCから送り込むイメージです
# 例 $ adb push test.txt /sdcard/Download/ test.txt: 1 file pushed, 0 skipped. 0.0 MB/s (170 bytes in 0.004s)
Android ⇨ PC にファイルを送る
同じくPCのシェルから実行します
ファイルの送り方
以下のコマンドで実行します
adb pull [ファイル名(絶対PATH)] [保存したいPCの場所]
pull
でAndroidから引っ張ってくるイメージです
# 例「.」は現在のPCのパスって意味です $ adb pull /sdcard/Pictures/Screenshots/Screenshot_20210720-104212_設定.png . /sdcard/Pictures/Screenshots/Screenshot_202107..., 0 skipped. 8.3 MB/s (169364 bytes in 0.019s
基本的には「/sdcard/」以下のフォルダを触ることになるのかと思いますが、それ以外ではpermissionの変更が必要になるかもしれません。
おわりに
Android端末内でのパスを指定するときは見慣れないフォルダ名とかもあると思うので、Tab補完をうまく利用しつつ上手にやってください