Diary

Diary

日々学んだことをアウトプットする場として初めてみました

PCとAndroid端末間でadbコマンドを通じてファイルのやりとりを行う

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の場所]

pullAndroidから引っ張ってくるイメージです

# 例「.」は現在の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補完をうまく利用しつつ上手にやってください