首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在linux上,如何只列出挂载的可移动媒体/设备?

在linux上,如何只列出挂载的可移动媒体/设备?
EN

Stack Overflow用户
提问于 2022-08-10 05:15:10
回答 2查看 205关注 0票数 0

我知道我们可以使用mount命令列出所有安装的设备。甚至是df命令。

但是我们如何知道列出的设备是否是可移动的,如USB、CMROM、外部硬盘等?

对于这个问题,我们可以从如何在SUSE或RedHat上完成它开始。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-10 07:59:03

在进一步考虑这一点之后,确定驱动器是否可移动的方法是检查以下内容:

代码语言:javascript
运行
复制
/sys/block/sdX/removable

设置为0 -不可移动或1 -可移动。您可以获得挂载驱动器的列表(假设表单/dev/sdX,其中Xabc等)然后循环检查设备,检查removable文件的内容。

对于使用进程替换的bash,可以通过while循环遍历设备名称,删除尾随的分区数字,并且只使用唯一的设备,可以这样做:

代码语言:javascript
运行
复制
#!/bin/bash

while read -r name; do
  if [ "$(<${name/dev/sys\/block}/removable)" -eq "1" ]; then 
    echo "$name - removable"
  else
    echo "$name - non-removable"
  fi
done < <(awk '/^\/dev\/sd/ {sub(/[0-9]+$/,"",$1); print $1}' /proc/mounts | uniq)

它将列出所有设备以及它们是否可移动。例如,使用插入的闪存驱动器(/dev/sdc)和我的普通硬盘驱动器(/dev/sdb)运行脚本,您将收到:

代码语言:javascript
运行
复制
$ bash list-removable.sh
/dev/sdb - non-removable
/dev/sdc - removable

也许还有很多其他的方法可以做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2022-08-10 07:07:17

你可以这样做:

代码语言:javascript
运行
复制
for dev in /dev/disk/by-id/usb*; do mount | grep $(readlink -f ${dev}); done

这第一次运行挂载以列出已挂载的设备。然后查看/dev/disk/by- id /它将使用设备的制造id连接到设备的udev。此链接将解析到它对应的/dev/设备。它会查看这些设备的挂载输出,并将它们与当前的挂载点和fs选项一起显示在屏幕上。

*编辑包括对安装的检查

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73300929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档