【macos】外付けデバイスの操作をコマンドから（diskutilコマンドを使ったmount、unmount、ファイル操作）

# はじめに

macではdiskutilコマンドで外付けデバイスのマウント/アンマウントができます。
マウントされたデバイスは`/Volumes/デバイスのディレクトリ`で参照できます。

# 外付けデバイスのアンマウント（取り外し）

## その1

Volumesディレクトリの中身をlsコマンドで調べます。
私の場合は以下が出力されます。

```:bash
ls /Volumes
Backup/                               Preboot/                              TimeMachine/
Macintosh HD@                         TOSHIBA/                              com.apple.TimeMachine.localsnapshots/
```

取り外したいデバイスに対して`diskutil unmount`します。

```
diskutil unmount /Volumes/デバイスのディレクトリ名
```

ここではUSBメモリ（「TOSHIBA」）を取り外します。

```
diskutil unmount /Volumes/TOSHIBA
Volume TOSHIBA on disk3s1 unmounted
```

## その2

`diskutil list`コマンドでデバイスの一覧を表示します。
私の場合は以下が出力されます。

```
diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         251.0 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         250.7 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +250.7 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            185.6 GB   disk1s1
   2:                APFS Volume Preboot                 46.3 MB    disk1s2
   3:                APFS Volume Recovery                509.7 MB   disk1s3
   4:                APFS Volume VM                      4.3 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS TimeMachine             1.0 TB     disk2s2
   3:                  Apple_HFS Backup                  999.9 GB   disk2s3

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.8 GB     disk3
   1:                 DOS_FAT_32 TOSHIBA                 7.8 GB     disk3s1
```

取り外したいデバイスに対して`diskutil unmount`します。

```
diskutil unmount /dev/デバイスの識別子（IDENTIFIER）
```

ここではUSBメモリ（「TOSHIBA」）を取り外します。
TOSHIBAデバイスの識別子は「disk3s1」なので、下記のコマンドになります。

```
diskutil unmount /dev/disk3s1
Volume TOSHIBA on disk3s1 unmounted
```


# 外付けデバイスのマウント（認識）

通常、Macの外付けデバイスは接続すると自動でマウントされ、/Volumes/デバイスのディレクトリからファイルを参照できます。
ただし、たまにそうはならないことがあり、そのときは手動でマウントさせることもできます。

`diskutil list`コマンドでデバイスの一覧を表示します。
私の場合は以下が出力されます。

```
diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         251.0 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         250.7 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +250.7 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            185.6 GB   disk1s1
   2:                APFS Volume Preboot                 46.3 MB    disk1s2
   3:                APFS Volume Recovery                509.7 MB   disk1s3
   4:                APFS Volume VM                      4.3 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS TimeMachine             1.0 TB     disk2s2
   3:                  Apple_HFS Backup                  999.9 GB   disk2s3

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.8 GB     disk3
   1:                 DOS_FAT_32 TOSHIBA                 7.8 GB     disk3s1
```

マウントしたいデバイスに対して`diskutil mount`します。

```
diskutil mount /dev/デバイスの識別子（IDENTIFIER）
```

ここではUSBメモリ（「TOSHIBA」）をマウントします。
TOSHIBAデバイスの識別子は「disk3s1」なので、下記のコマンドになります。

```
diskutil mount /dev/disk3s1
Volume TOSHIBA on /dev/disk3s1 mounted
```

# ファイル操作

デバイスにあるファイルは、`/Volumes/デバイスのディレクトリ`内で参照できます。
ここへコマンドラインでコピーすることも削除することももちろん可能です。
下記はUSBメモリ（ディレクトリ名「TOSHIBA」とします）へコピーする例です。

```
cp file1.txt /Volumes/TOSHIBA/file1.txt
```

# 参考

- [ターミナルでボリュームを表示するには&… \- Apple コミュニティ](https://discussionsjapan.apple.com/thread/10054243)
- [MacでUSBメモリをマウントする　how to mount USB disk on Mac \- Qiita](https://qiita.com/Ryoh/items/15658bfc856ee5d0a4b0)