检查是否连接了特定的外部磁盘

Jen*_*eno 10 command-line external-hdd

如果连接了特定的外部磁盘,如何通过 shell 命令检查?(按标签或设备 ID)

pim*_*pim 10

/dev/disk/包含以下目录,其中包含指向真实设备的符号链接。此链接由 动态创建和删除udev,因此它们始终是最新的:

  • 按 ID
  • 按部分标签
  • 产后
  • 旁路
  • by-uuid

因此,检查符号链接是否存在将使用更少的资源。

以下是使用序列号测试磁盘是否存在的示例:

test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no
Run Code Online (Sandbox Code Playgroud)

在我的备份脚本中,我什至不检查磁盘是否存在,我只检查mount命令的结果,如下所示:

mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1
Run Code Online (Sandbox Code Playgroud)


des*_*ert 9

为了测试特定的设备是否连接,您可以使用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
Run Code Online (Sandbox Code Playgroud)

或与if

uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
  echo yes
else
  echo no
fi
Run Code Online (Sandbox Code Playgroud)

无论设备是否挂载,都可以使用。