Come elencare tutti i / dev / disks, non le partizioni che terminano in s1, s2, ...?

0

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?]
    
posta Pro Backup 03.07.2018 - 12:39
fonte

2 risposte

1

Utilizzo del glob esteso di ksh :

ls /dev/+(disk?|disk??)

per bash devi attivare l'estensione estesa

shopt -s extglob
ls /dev/+(disk?|disk??)
    
risposta data 03.07.2018 - 13:12
fonte
0
$ ls /dev/disk[0-9]{,[0-9]}
/dev/disk0  /dev/disk11 /dev/disk2  /dev/disk4  /dev/disk6  /dev/disk8
/dev/disk10 /dev/disk12 /dev/disk3  /dev/disk5  /dev/disk7  /dev/disk9
    
risposta data 03.07.2018 - 12:39
fonte

Leggi altre domande sui tag