我只想列出通过 USB 连接的设备。
问题是 Ubuntu 似乎将所有拇指驱动器视为可移动驱动器(在/sys/block/*/removable
),但它并不以相同的方式看待外部硬盘驱动器。
答案1
如果你正在寻找已安装的磁盘,一个简单的
df
将列出它们以及您的所有其他磁盘以及一些有用的信息。
答案2
我建议检查设备的 udev 属性,特别是以下ID_BUS
属性:
for device in /sys/block/*
do
if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
then
echo $device
fi
done
答案3
我认为
lsusb
会给你你想要的东西,至少如果我明白你在问什么的话。(当然,它列出了所有 USB 设备,而不仅仅是存储设备。)
答案4
仅附有清单USB存储设备
编辑:有时间的话,我会重新查看这篇文章,让它只列出 USB 设备。目前,它列出了所有安装的设备,/media
这对某些人来说可能已经足够了。
列出所有安装在的设备/media
此处的所有其他答案似乎都无法过滤掉非 USB 存储设备或非存储 USB 设备。这里有一个命令,它应该只列出通过 USB 连接的存储设备。 有一个例外,可能对任何人来说都无关紧要,那就是这不会显示已安装介质的已连接的 USB 光驱。
此项工作的要求
- 必须安装 USB 设备。Ubuntu 桌面操作系统通常默认自动安装
- 媒体必须安装在
/media
目录中。如果您的 USB 设备在 fstab 中配置为安装在其他位置,则必须调整以下命令
列出 USB 存储设备
在我编写的脚本的特定情况下,我会列出各个分区。这里有两个命令。一个命令将列出所连接设备的分区,另一个命令将仅列出设备。
列出分区:
lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
示例输出:/dev/sdd1 /dev/sdi1 /dev/sdj1 /dev/sdj2
列出设备:
lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
示例输出:/dev/sdd /dev/sdi /dev/sdj