簡體   English   中英

在 linux 上,如何僅列出已安裝的可移動媒體/設備?

[英]on linux, how do I list only mounted removable media / device?

我知道我們可以使用mount命令列出所有已安裝的設備。 甚至是df命令。

但是我們如何知道列出的設備是否可移動,例如 USB、CMROM、外部硬盤等?

對於這個問題,我們可以從如何在 SUSE 或 RedHat 上進行。

謝謝!

在考慮了更多之后,確定驅動器是否可移動的方法是檢查以下內容是否:

/sys/block/sdX/removable

設置為0 - 不可移動或1 - 可移動。 您可以獲取已安裝驅動器的列表(假設格式為/dev/sdX sdX,其中Xabc等),然后遍歷設備檢查removable文件的內容。

對於bash使用Process-Substitution來提供一個while循環來循環設備名稱,刪除尾隨分區數字並且只采用您可以執行的唯一設備:

#!/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)

這將列出所有設備以及它們是否可移動。 例如,使用插入的 flash 驅動器 ( /dev/sdc ) 和我的普通硬盤驅動器 ( /dev/sdb ) 運行腳本,您將收到:

$ bash list-removable.sh
/dev/sdb - non-removable
/dev/sdc - removable

可能還有許多其他方法可以做到這一點。

你可以這樣做:

for dev in /dev/disk/by-id/usb*; do mount | grep $(readlink -f ${dev}); done

這首先運行 mount 以列出已安裝的設備。 然后,它使用設備的制造商 ID 查看 /dev/disk/by-id/ 它將具有到設備的 udev 鏈接。 此鏈接將解析到它對應的 /dev/device。 它為這些設備查找掛載的 output 並將它們連同它們當前的掛載點和 fs 選項一起顯示在屏幕上。

*編輯以包括檢查掛載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM