コマンドを繰り返さずにラベルごとに複数のボリュームをマウントしますか?

コマンドを繰り返さずにラベルごとに複数のボリュームをマウントしますか?

私はこれをオンラインで持っています: diskutil mount VOL1 && diskutil mount VOL2 && diskutil mount VOL3

しかし、インライン配列を使用して "diskutil mount"コマンドを繰り返すことはしたくありません。私は次のスタイルで解決策を見つけようとしています。diskutil mount {VOL1,VOL2,VOL3}

それでは、xargsはどのように書かれますか?

答え1

~によるとdiskutil マニュアルページ、このmountコマンドは単一ボリュームをマウントするように明示的に設計されています(強調表示)。

[読み取り専用] [-mountPoint パス] デバイスのマウント

シングルボリュームマウント。 readOnlyを指定すると、ボリューム上のデフォルトのファイルシステムおよび/またはデバイスおよび/またはメディアが書き込みをサポートしていても、ファイルシステムは読み取り専用でマウントされます。これは mount(8) の rdonly と一致します。オプションは同じです。 -mountPointが指定されている場合、このパス(/ Volumes / VolumeNameへの完全修飾パスではない)がボリュームファイルの内容の表示として使用されます。このパスのディレクトリはすでに存在している必要があります。

これはdiskutil mount {VOL1,VOL2,Vol3}、拡張された単純な操作を実行できないことを意味しますdiskutil mount VOL1 VOL2 Vol3。ただし、実際にxargs提案したとおりに実行できます。

printf '%s\n' {VOL1,VOL2,VOL3} | xargs -I{} diskutil mount {}

または、単純なループを使用してください。

for i in {VOL1,VOL2,VOL3}; do diskutil mount "$i"; done

関連情報