2011/10/29

Mac OS X (Lion) のファインダーで隠しファイルを表示する

Mac OS X (Lion) のファインダーは、デフォルトではライブラリなどのフォルダが表示されない。
開発をしているとたまにこれらのフォルダーにアクセスする必要があるので、その方法を調べた。
やり方は大きく2つ。以下はいずれもターミナルからコマンド入力をして使う。

1. chflags で不過視属性を変更する

ファイルやフォルダの不過視属性は chflags によって変更できる。
(chflags は BSD 4.4以降の標準コマンドらしい)

ls でファイル属性を確認するためには、-lO(大文字) オプションをつける。

$ ls -lO
total 24
drwx------+  6 user  staff  -       204 10 29 17:27 Desktop
drwx------+ 14 user  staff  -       476 10 19 20:30 Documents
drwx------+ 27 user  staff  -       918 10 28 14:15 Downloads
drwx------@ 56 user  staff  hidden 1904 10 13 16:09 Library
drwx------+  8 tuser staff  -       272  9 13 18:38 Movies
drwx------+  8 user  staff  -       272  9  2 02:59 Music
drwx------+ 15 user  staff  -       510 10 21 15:42 Pictures
drwxr-xr-x+  5 user  staff  -       170  8 27 00:43 Public
drwxr-xr-x   7 user  staff  -       238 10 13 14:31 www
Library フォルダが hidden となっているのがわかる。
不過視属性を解除するには、以下のようにする。
$ chflags nohidden Library

ファインダーで確認してみると、無事「ライブラリ」フォルダが表示される。

必要なフォルダのみ表示する事ができるので、chflags を使う方がオススメ。
また、自分で作成したファイルやフォルダを不過視にすることもできる。

ちょっと気になったので、ついでに tar や zip のアーカイブで nohidden 属性が維持されるのか試してみた。
tar : nohidden 属性は展開後も維持されていた。
zip : nohidden 属性は維持されず、すべて可視ファイルとなった。
tar では chflags の属性も維持されているがこれはBSD固有の機能なので、他のプラットフォームで展開した場合に属性が維持される保証はない。

2. defaults で Finder で全てのファイルを表示するように設定する

Mac では、Windows のレジストリに相当するものとして defaults がある。
ターミナルから defaults コマンドを使用して、ファインダーの設定で全てのファイルを表示するように設定する。
Macで隠しファイルを表示する方法についてググると、ほとんどこの方法が説明されている。

domaincom.apple.finder
keyAppleShowAllFiles
valueTRUE : 全てのファイルを表示
FALSE : 隠しファイルは表示しない

全てのファイルを表示するように設定する例
$ defaults write com.apple.finder AppleShowAllFiles TRUE
$ killall Finder
設定の変更後に、設定を適用するために killall でファインダーを再起動する。

ただしこの方法では、
  •  隠しておいても良いフォルダも全て表示されてしまい、ファインダーのリストが長くなってしまう。
  • デスクトップ上のシステムファイルもアイコンで表示されてしまい、デスクトップが散らかってしまう。

といった欠点があるので、chflags を使う方がオススメ。

補足:ファイル選択ダイアログでの不過視ファイルの表示切り換え

ファイル選択ダイアログでは、ショートカットキーの「Command + Shift + . (ピリオド)」 で不過視ファイルの表示のON/OFFを切り替える事ができる。