Macの開発関連作業の自動化で使えるツール

Macの開発関連作業の自動化でシェルスクリプトから使うと便利なツールのまとめです。
Mac専用のコマンドは少ないないので、UNIX系やLinux系の開発でも使えます。(そっちを使っている人は普通に普段から使っているコマンドだと思いますが)
各コマンドのオプションなどの詳細は、manや-helpで確認してください。

sw_vers

システムのバージョンやビルド番号を出力するツール。

OSのバージョンが出力される。「10.6.5」など。

OSのビルド番号が出力され。「10H574」など。

sed

テキストのフィルタ。ファイルやパイプで渡したテキストを加工できる。
置き換えるパターンには「*」と「.」が特別な意味を持つ。「.」は任意の文字。「*」は前の文字の繰り返し。「.」自体を使いたいときは「\.」のようにエスケープさせる。

(パイプでテキストを渡すときは入力ファイル名は書かない)

test

色々を比較する。「[ ]」表記で置き換えることもできる。

評価式には、次のような式を使える。
-b パス パスにファイルが存在していて、ブロックファイルならTrue
-c パス パスにファイルが存在していて、キャラクタファイルならTrue
-d パス パスにディレクトリが存在していればTrue
-e パス パスが存在していればTrue
-f パス パスに通常のファイルが存在すればTrue
-g パス パスにファイルが存在していて、グループIDフラグが設定されていればTrue
-h パス パスにシンボリックリンクファイルが存在していればTrue。下位互換のために残されているため、「-L」を使うこと。
-L パス パスにシンボリックリンクファイルが存在していればTrue
-k パス パスにファイルが存在していて、スティッキービットがセットされていればTrue
-p パス パスが名前付きパイプ(FIFO)ならTrue
-r パス パスにファイルが存在していて、読み込むことができるならTrue
-s パス パスにファイルが存在していて、サイズが0よりも大きければTrue
-u パス パスにファイルが存在していて、ユーザーIDフラグが設定されていればTrue
-w パス パスにファイルが存在していて、書き込むことができるならTrue
-x パス パスにファイルが存在していて、実行することができるならTrue
-O パス パスが存在していて、その所有者がこのプロセスを実行しているユーザーと一致するならTrue
-G パス パスが存在していて、そのグループがこのプロセスを実行しているユーザーのグループと一致するならTrue
-S パス パスがソケットならTrue
パス1 -nt パス2 パス1が存在していてパス2よりも新しければTrue
パス1 -ot パス2 パス1が存在していてパス2よりも古ければTrue
パス1 -ef パス2 パス1とパス2が存在していて、同じファイルならTrue
-t ファイルデスクリプタ 指定されたファイルデスクリプタ番号のファイルが開かれていて、ターミナルと関連づけられていればTrue
-n 文字列 文字列の長さが0でなければTrue
-z 文字列 文字列の長さが0ならTrue
文字列 文字列がnullでなければ、True
文字列1 = 文字列2 文字列1と文字列2が同じならTrue
文字列1 != 文字列2 文字列1と文字列2が異なるならTrue
文字列1 < 文字列2 文字列1の方が前にくるならTrue
文字列1 > 文字列2 文字列1の方が後にくるならTrue
数値1 -eq 数値2 数値1と数値2が等しければTrue
数値1 -ne 数値2 数値1と数値2が異なればTrue
整数1 -gt 数値2 数値1の方が大きければTrue
数値1 -ge 数値2 数値1が数値2以上ならTrue
数値1 -lt 数値2 数値1の方が小さければTrue
数値1 -le 数値2 数値1が数値2以下ならTrue
! 評価式 評価式のNOT
評価式1 -a 評価式2 評価式1と評価式2のAND
評価式1 -o 評価式2 評価式1と評価式2のOR
(評価式) 評価式がTrueならTrue

xcodebuild

Xcodeでビルドする

-activetargetはアクティブなターゲットを対象とする。代わりに「-alltargets」を使うと全ターゲット、「-target ターゲット名」を使うと指定したターゲット。
-activeconfigurationはアクティブな構成。代わりに「-configuration 構成名」を使うと指定した構成になる。
アクションには、build, installsrc, install, cleanが使える。

find

ファイル階層を走査する。「-name」オプションと「-delete」オプションを使うと特定のファイルだけを削除できる。
[例]

.DS_Storeファイルだけを削除する

chown

パーミッション変更。-Rオプションも指定すると再帰。
[例]

packagemaker

インストーラを作る。あらかじめPackageMakerで、パッケージの設定ファイルを作っておくと楽。
10.4の場合

10.6の場合

[例]

hdiutil

dmgファイルを作ることができる。

[例]

read

プロンプト表示。

入力結果は変数に格納される。
[例]

tar

アーカイブ作成やアーカイブの展開を行う。
アーカイブ展開

アーカイブ作成

[例]
tar -xvzf /Desktop/Work.tar.gz -C /Desktop/Temp
tar -cvzf /Desktop/Build.tar.gz /Desktop/Build

rm

ファイルやディレクトリの削除。
-Rオプションで再帰、-fオプションで問答無用。
[例]

cp

ファイルやディレクトリのコピー
-Rオプションで再帰、-pオプションでタイムスタンプや諸々をなるべく維持する。
[例]

mkdir

ディレクトリを作成する

関連記事

  1. Parallels Desktop 9 の Windows を分離する…

  2. サーバー再構成しました

  3. Qt 4.5をVisual Studio 2008と組み合わせる

  4. File Manager由来のAPIがDeplecatedになっていた…

  5. 文章の執筆にも課題管理をすると捗る

  6. boot2dockerはDocker実行用のLinuxディストリビュー…

最近の著書

最近の記事