web-dev-qa-db-ja.com

USBメモリースティックのマウントポイントまたはパスを見つけるためのコマンドは何ですか?

USBメモリスティックのマウントポイントまたはパスのみを取得できる必要があります。これはそのためのコマンドですか? lsblk -r | grep usbそのコマンドを実行すると、次のように返されます。 sda1 /media/usb0メモリースティックへのマウントポイントまたはパスが必要です。

1
ThN

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

お役に立てれば!

4
Terrance

タイプ:

df#は、すべての既知のデバイスのマウントポイントを示します

あなたの場合、次のようなものになります。

/ media/sr0

/ media/usb0

通常はブートドライブであるsda1であるとは思わない

0
jones0610