MacOS Xは単純に言えばUNIX + MacなのでUNIXコマンドを利用することができます。MacOSはGUI(グラフィカルユーザーインターフェース)で分かりやすいインターフェースを持っていますが、UNIXは基本的にコマンドラインからコマンドを入力して処理を行わせます。通常の場合、GUIで操作する方が分かりやすく簡単ですが、時と場合によってはUNIXコマンドの方が確実かつ高速で有益な場合があります。
そこで、今回は知っていたら便利というコマンドの実例(その1)を紹介します。対象としているのはMacOS X 10.3.x (Panther)です。Tigerになっても使えるはずです。MacOS X 10.3以前の場合には
bash
と入力しシェルを切り替えてから実行してください。
【1】Terminalを起動
コマンドを入力するためにはTerminal.app(ターミナル)を起動する必要があります。起動したハードディスクのアプリケーションフォルダ内のユーティリティフォルダを開いてみてください。「ターミナル」または「Terminal」という名前のアイコンをダブルクリックして起動させます。
Last login: Tue Apr 20 21:16:48 on ttyp1
Welcome to Darwin!
と表示されてから
PowerMacG5:~ digi$■
の行が表示されます。■はカーソルです。PowerMacG5というのはマシン名です。これはシステム環境設定の「共有」での設定で表示されるコンピューター名で指定してある名前になります。
これでコマンド入力の準備はOKです。Terminalはドックなどに登録しておくとすぐに起動できて便利でしょう。
【2】ディレクトリを移動する
まず、ディレクトリを移動する命令を覚えましょう。これは
cd 移動先のディレクトリ名
と入力しリターンキーを押します。移動先のディレクトリ名がルート(起動ディスクの一番上の階層)なら
cd /
と/(スラッシュ)だけを指定します。ユーザーフォルダに移動するなら
cd /Users/
となります。digiというユーザーがいる場合には
cd /Users/digi/
とするとユーザー名digiのホームディレクトリに移動します。
/でディレクトリ(フォルダ・階層)を区切るのはWebでのURL指定方法と全く同じです。今、ユーザー名digiのホームディレクトリに移動しましたが、以下のように指定すると自分のホームディレクトリに移動します。
cd ~
となります。~はチルダーです。これもWebでのURL指定でおなじみのものです。
次に1つ上の階層に上がるには
cd ../
となります。現在のディレクトリに移動するには(意味がありませんが)
cd ./
となります。また、MacOS Xではcd と入力してからファインダから移動先のフォルダをTerminalにドラッグドロップすると自動的にディレクトリが入力されます。階層が深い場合や、分からない場合には、この方法が良いでしょう。また、ディレクトリ名を途中まで入れてからtabキーを押すと名前が補完され自動的に入力されます。
【3】ディレクトリ一覧を表示する
ファインダではボリュームやフォルダをダブルクリックすると何が入っているか自動的に表示されます。UNIXの場合、コマンドを入力しないとディレクトリの中身を見る事ができません。ディレクトリの中身を見るには
ls
と入力します。するとディレクトリの中身が表示されます。(以下は例です)
0001.JPG 0002.JPG title.gif images
より詳しい情報を見たい場合には-lオプションをつけます。
ls -l
と入力すると以下のように表示されます。
-rw-r--r-- 1 openspc openspc 7547275 18 Apr 16:47 0001.JPG
ファインダでは表示されないファイルは-laを指定すると見ることができます。
drwxr-xr-x 7 openspc openspc 238 20 Apr 21:34 .
drwxr-xr-x 36 openspc openspc 1224 20 Apr 21:19 ..
-rw-r--r-- 1 openspc openspc 6148 20 Apr 21:33 .DS_Store
-rw-r--r-- 1 openspc openspc 7547275 18 Apr 16:47 0001.JPG
【3】拡張子がjpgのファイルだけ削除する
次は少し実用的なコマンドを紹介します。cdコマンドを使って現在のディレクトリにある拡張子がjpgのみ(jpgファイル)削除します。これは以下のように入力します。
rm *.jpg
拡張子がgifのファイルのみ削除するには以下のようになります。
rm *.gif
ディレクトリ内のファイルを全て削除するには以下のように入力します。
rm *
ファイル名を指定して削除することもできます。
rm 0001.jpg
とすると0001.jpgファイルのみ削除されます。ファイル名の部分にパスを指定すると指定したディレクトリ内にあるファイルを削除することができます。以下のように入力するとdigiユーザーのimages不ディレクトリ内にある拡張子jpg(JPEGファイル)のみ削除されます。
rm /Users/digi/images/*.jpg
【4】拡張子を変更する
次は、もう少し実用的なコマンドを紹介しましょう。拡張子が大文字のJPGになっているファイルがあり、これを小文字のjpgにするには以下のように入力します。
for i in *.JPG;do mv $i ${i%.JPG}.jpg;done
JPEGでなくGIF形式でも同様に指定できます。以下のコマンドは大文字の拡張子GIFを小文字のGIFにします。
for i in *.GIF;do mv $i ${i%.GIF}.gif;done
Photoshop PSDも同様です。以下のコマンドは大文字の拡張子PSDを小文字のpsdにします。
for i in *.PSD;do mv $i ${i%.PSD}.psd;done
ファイルによっては「sample.mpg.mv2」のように拡張子が2つ付いてしまっている場合があります。このような時に末尾の拡張子mv2を削除するには以下のようになります。
for i in *.mv2;do mv $i ${i%.mv2};done
末尾の拡張子でなく中間の拡張子「sample.mpg.mv2」を削除し「sample.mv2」にしたい場合は以下のようになります。
for i in *.mv2;do mv $i ${i%.mpg.mv2}.mv2;done
他にも便利なコマンドがUNIXにはありますので、役立ちそうなものだけ覚えると良いかと思います。全部のコマンドは知らなくても、使えるものだけ覚えれば十分です。私も必要なもの以外はさっぱり分かりません。あと、毎回同じコマンドを入力しなくてもテキストエディタなどで書いて保存しておけば、より簡単に使うことができます。
日本語に関しては正しく表示されなかったりする事があるので注意が必要です。