USBメモリスティックのマウントポイントまたはパスのみを取得できる必要があります。これはそのためのコマンドですか? lsblk -r | grep usb
そのコマンドを実行すると、次のように返されます。 sda1 /media/usb0
メモリースティックへのマウントポイントまたはパスが必要です。
lsblk
のコマンド用に1つを思い付きました。 MOUNTPOINTおよびHOTPLUGのオプションを使用して、識別を支援します。ドライブがUSBドライブのように取り外し可能な場合、HOTPLUGは1を返します。 sr0タイプのドライブはリムーバブル/ホットプラグですが、CD/DVDドライブです。また、ループデバイスも取り外し可能/ホットプラグであることを示しているため、ループデバイスを停止します。
私が思いついたコマンドは次のとおりです。
lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
USBドライブを持っているので、次の結果が得られます。
terrance@terrance-ubuntu:~$ lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
/media/terrance/E627-3C44
これは、差し込まれたUSBドライブの正確なマウントポイントです。
注: Ubuntu 14.04はlsblk
に同じオプションを使用しない可能性があるため、RM
の代わりにHOTPLUG
を使用してコマンドを使用できます。
lsblk -o NAME,RM,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
または、TRAN
タイプを使用できます。16.04でテストしましたが、これはdevice transport type
です。スクリプトを作成しやすい別の出力を提供します。
lsblk -o NAME,TRAN,MOUNTPOINT
次のような出力が生成されます。
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT
NAME TRAN MOUNTPOINT
loop1 /snap/canonical-livepatch/17
sdb usb
└─sdb1 /media/terrance/E627-3C44
loop4 /snap/core/1441
sr0 sata
loop2 /snap/core/1287
loop0 /snap/canonical-livepatch/21
sda sata
├─sda2
├─sda5 [SWAP]
└─sda1 /
loop3 /snap/core/1337
MOINTPOINTはusbの後の次の行にリストされているので、grep -A 1
を使用して次の行を取得し、awk '{print $2}'
を使用してその行の出力の2列目を出力します。
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT | grep -A 1 -w usb | grep -v usb | awk '{print $2}'
/media/terrance/E627-3C44
お役に立てれば!
タイプ:
df#は、すべての既知のデバイスのマウントポイントを示します
あなたの場合、次のようなものになります。
/ media/sr0
/ media/usb0
通常はブートドライブであるsda1であるとは思わない