コマンドラインでBash 3.2シェルのシリアル番号からドライブのMac OS X名をリスト(出力)しようとしています。そのためには、パーティションではないすべてのブロックデバイスをループする必要があります。だから私はこのbashループのより良い交換が必要です:for disk in /dev/disk*; do …; done
最終的にはワイルドカードパターンで、パイピング(スルー)や他のユーティリティ(など)なしでls
のみ使用したいと思います。grep
find
これはls /dev/disk*
、s1
(のような/dev/disk0s1
)s2
などで終わるパーティションと似ていますが、一致しません。
回帰
失敗した試行:
$ 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?]
-bash: syntax error near unexpected token '('