Ubuntu 14.04를 실행하는 GNU bash 4.3.11을 사용하여 내 컴퓨터에 있는 모든 SD 카드의 경로를 어떻게 얻을 수 있습니까?
배경:
.iso 파일이 있고 사용자에게 .iso 파일을 쓸 SD 카드를 묻는 bash 스크립트를 만들고 싶습니다. 스크립트는 내부 하드 드라이브나 CD/DVD 드라이브를 제공하지 않고 SD 카드 경로만 제공해야 합니다.
실제로 나는 수동으로 사용합니다
ls -la /dev/sd*
예를 들어 테스트 머신을 제공합니다.
brw-rw---- 1 root disk 8, 0 May 3 10:54 /dev/sda
brw-rw---- 1 root disk 8, 1 May 3 10:54 /dev/sda1
brw-rw---- 1 root disk 8, 2 May 3 10:54 /dev/sda2
brw-rw---- 1 root disk 8, 5 May 3 10:54 /dev/sda5
brw-rw---- 1 root disk 8, 16 May 3 15:12 /dev/sdb
brw-rw---- 1 root disk 8, 17 May 3 14:56 /dev/sdb1
brw-rw---- 1 root disk 8, 18 May 3 14:56 /dev/sdb2
이 경우 컴퓨터의 하드웨어를 알고 있기 때문에 sda가 내 하드 드라이브라는 것을 "알고" 있으므로 sdb가 SD 카드임에 틀림없지만 알고리즘은 이를 어떻게 수행합니까?
답변1
lsblk -d -t
다음과 같은 출력을 제공하는 명령을 사용하여 귀중한 정보를 얻을 수 있습니다.
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE
sda 0 512 0 512 512 0 deadline 128
sdb 0 4096 0 4096 512 1 deadline 128
sdc 0 512 0 512 512 1 deadline 128
sdd 0 512 0 512 512 1 deadline 128
sr0 0 512 0 512 512 1 deadline 128
불행하게도 위험한 가정 없이 SSD를 배제할 수 있는 방법은 없습니다(SDXC) 형식은 2009년 1월에 출시되었으며 SD 사양 3.01에 도입되었습니다. 버전에 정의된 대로 최대 2TB의 카드를 지원합니다. 일부 SSD보다 용량이 더 높은 SD 카드를 본 적이 있습니다.