Sto provando ad elencare (estrarre) l'unità dal suo nome Mac OS X dal numero di serie nella shell di Bash 3.2 sulla riga di comando. Per questo ho bisogno di scorrere tutti i dispositivi a blocchi non essendo una partizione. Quindi ho bisogno di un sostituto migliore per questo ciclo di bash: for disk in /dev/disk*; do …; done
Voglio usare ls
solo , eventualmente con un modello jolly, senza piping (attraverso grep
) e senza altri utils (come find
).
È come ls /dev/disk*
ma non corrisponde alle partizioni che terminano in s1
(come /dev/disk0s1
), s2
eccetera.
Regressione
I tentativi falliti:
$ 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?]