Estoy tratando de listar (enviar) la unidad de su nombre de Mac OS X del número de serie en el shell Bash 3.2 en la línea de comandos. Para esto necesito recorrer todos los dispositivos de bloque que no sean una partición. Así que necesito un mejor reemplazo para este bucle de bash: for disk in /dev/disk*; do …; done
Quiero usar ls
solo , eventualmente con un patrón de comodín, sin canalizaciones (a través de grep
) y sin otras utilidades (como find
).
Es como ls /dev/disk*
pero no coincide con las particiones que terminan en s1
(como /dev/disk0s1
), s2
etcétera.
Regresión
Los intentos fallidos:
$ ls /dev/disk[0-9]*[!s][!1-9]
$ ls /dev/disk[0-9]*[!s,!1-9]
$ ls /dev/disk* -d -- *[!s][1-9]
$ ls /dev/disk[0-9]*[!s,1-9]
$ ls /dev/disk[0-9]*[!s]
$ ls /dev/disk[0-9]*[!s][0-9]
$ ls /dev/disk[0-9]*[!s]*
$ ls /dev/disk[0-9]*[!\s1-9]
$ ls /dev/disk[0-9]*[!s1-9]
$ ls /dev/disk[0-9]*([!s1-9])
$ ls /dev/disk[0-9]*[!s]*[0-9]
$ ls /dev/disk[0-9][0-9]
$ ls /dev/disk* --ignore="disk*s?"
$ ls /dev/disk* -I "*s?"
$ ls /dev/disk* -I "*s[1-9]"
$ ls /dev/disk*[!s?]