LinuxやMacでUUIDを生成するコマンド

こんにちは。beaglesoftの真鍋です。

今回はLinuxやMacのシェルでUUIDを生成するときに便利なuuidgenを紹介します。

何するものか?

uuidgenはUUIDを生成するためのコマンドです。

使ってみる

以下の通り利用できます。

$ uuidgen
8D4F960F-8E4D-484E-B429-5CCEA11C7880

manを確認すると以下の通りとなっています。

NAME
     uuidgen -- generates new UUID strings

SYNOPSIS
     uuidgen [-hdr]

DESCRIPTION
     The uuidgen command generates a Universally Unique IDentifier (UUID), a 128-bit value guaranteed to be unique over both space and time.

     The following options are available:

     -hdr      Emit CoreFoundation CFUUID-based source code for using the uuid in a header.

RETURN VALUE
     The UUID is printed to standard output as a hyphen-punctuated ASCII string of the form: EEF45689-BBE5-4FB6-9E80-41B78F6578E2 (in printf(3) format
     "%08X-%04X-%04X-%04X-%012X"), unless the -hdr option is given, in which case a fragment of source code is output.

-hdrオプションを付けると、生成したときのマクロが表示されます。これの使いみちがよくわかりません…。

$  uuidgen -hdr
// 198AE91D-3E5B-4790-9465-ABC49E025442
#warning Change the macro name MYUUID below to something useful!
#define MYUUID CFUUIDGetConstantUUIDWithBytes(kCFAllocatorSystemDefault, 0x20, 0xAA,...)

感想

タイムスタンプを利用しようかと思ったのですが、uuidがshellで生成できることを知りませんでした。今後利用する機会が増えそうです。