명령 줄에서 USB를 통해 연결된 모든 저장 장치 (엄지 드라이브 / 외장 하드 드라이브)를 어떻게 나열합니까?


18

USB를 통해 연결된 장치 만 나열하고 싶습니다.

문제는 Ubuntu가 모든 썸 드라이브를 이동식 ( /sys/block/*/removable) 으로 보는 것처럼 보이지만 외장 하드 드라이브는 같은 방식으로 보이지 않습니다.

이것은 USB 장치를 감지하는 방법 보다 조금 더 구체적 입니까?

답변:


14

마운트 된 디스크를 찾고 있다면

df

유용한 정보와 함께 다른 모든 디스크와 함께 나열됩니다.


2
그러나 이것은 USB를 통해 연결된 장치뿐만 아니라 모든 블록 장치를 제공합니다.
Jeremy Kerr

9

장치의 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

이것은 카드가 삽입되지 않은 경우에도 내장 카드 리더기를위한 장치를 뱉어냅니다.
b_laoshi

@b_laoshi : 그렇습니다. 그래도 저장 장치로보고되지만 미디어는 없습니다.
Jeremy Kerr

2

나는 생각한다

lsusb

적어도 당신이 요구하는 것을 이해한다면 당신이 원하는 것을 줄 것입니다. (물론 스토리지뿐만 아니라 모든 USB 장치를 나열합니다.)


2

연결된 USB 저장 장치 만 나열

편집 : 시간이 있으면이 게시물을 다시 방문하여 USB 장치 만 나열하도록합니다. 현재 /media로서는 일부 사람들에게 충분할만큼 장착 된 모든 장치가 나열 되어 있습니다.

마운트 된 모든 장치 나열 /media

여기의 다른 모든 답변은 비 USB 저장 장치 또는 비 저장 USB 장치를 필터링하지 못하는 것으로 보입니다. 다음은 USB를 통해 연결된 저장 장치 만 나열해야하는 명령입니다. 다른 사람에게는 중요하지 않은 한 가지 예외는 마운트 된 미디어가있는 연결된 USB 광 드라이브를 표시하지 않는다는 것입니다.

이것이 작동하기위한 요구 사항

  • USB 장치가 장착되어 있어야합니다. 우분투 데스크탑 OS는 일반적으로 기본적으로 자동 마운트
  • 미디어는 /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
    

마운트 된 내부 디스크의 파티션은 /media어떻습니까?
muru

문제가 될 수 있지만 대부분의 사용자에게 영향을 미치지 않을 것입니다. 몇 가지 생각을하고 나중에 업데이트하겠습니다.
b_laoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.