回答:
特定のデバイスは、あなたが使用することができます接続されているかどうかをテストするために、grep
と-q
の出力を検索するためのオプションlsusb
やlsblk
、例えば
uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
lsblk -f | grep -wq $uuid && echo yes || echo no
devicename="some Inc. Keyboard"
lsusb | grep -q "$devicename" && echo yes || echo no
またはif
:
uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
echo yes
else
echo no
fi
デバイスが搭載されているかどうかに関係なく、どちらも使用できます。
/dev/disk/
実際のデバイスへのシンボリックリンクを含む次のディレクトリが含まれています。このリンクはによって動的に作成および削除されるudev
ため、常に最新のものになります。
そのため、シンボリックリンクの存在を確認すると、使用するリソースが少なくなります。
次に、シリアル番号を使用してディスクの存在をテストする例を示します。
test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no
私のバックアップスクリプトでは、ディスクの存在を確認していません。mount
次のようなコマンドの結果のみを確認しています。
mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1
findfs
これのために作られました。で検索できます:
FSラベル
findfs LABEL="Ubuntu" &>/dev/null
FS uuid
findfs UUID="f9035fce-b3a1-4aee-80ef-44e432b78fdb" &>/dev/null
GPTラベル
findfs PARTLABEL="EFI system partition" &>/dev/null
findfs PARTUUID="85e66d2f-3709-4060-938e-ffe836433cc9" &>/dev/null
検索では大文字と小文字が区別されます。複数のパーティションが一致する場合、最後のパーティションのみが表示されます。
lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no
。