子子子子子子(ねこのここねこ)はてブロ部

Macネタが主のIT記事と、興味ある展覧会リストや観覧感想などを書いてますよ。自転車ロードレースも好き。

不可視ファイルになってこまった

話の前にtipsを

ファイルが持つMac特有の情報を調べる場合には、「GetFileInfo」コマンドを使おう。旧Mac OSでは、ファイルタイプやクリエータの文字列を調べるときにResEditなどのユーティリティを利用するが、GetFileコマンドはその代役となりうる。たとえば、Adobe Illustratorで作成したファイルを引数として与えると、ファイルタイプに「TEXT」、クリエータに「ART5」という情報が表示されるはずだ。

ファイルタイプ/クリエータを設定するときには、「SetFile」コマンドが役に立つ。使い方は簡単、ファイルタイプならば「-t」オプション、クリエータならば「-c」オプションに続けて文字列を指定すればOK。これで"豆腐"ファイルの問題もResEditを使わずに解決できる。

○例3:ファイルが持つファイルタイプ/クリエータを調べる
% GetfileInfo zuhan.eps

○例4:ファイルタイプに「XLS8」、クリエータに「XCEL」を設定する
% SetFile -t "XLS8" -c "XCEL" sheet.xls
http://journal.mycom.co.jp/column/osx/023/index.html

さて本題

いま使っているファイルサーバはI・O DATAのHDL-GX300なのだが、netatalkのバージョンが古いせいかLeopardでアクセスすると時々不具合が生じる。
使うソフトによってはファイルがいきなり不可視になってしまうこともある。今日は携帯シンクを使っていたのだが、ファイルサーバに保存すると見えなくなった。一旦ローカルの書類フォルダに同じ名前で保存してからファイルサーバへ上書きのためにコピーしようとすると「不可視項目なので置き換えられません。」と出た。こんな感じ。

こまって調べて見つけたのがこちら。

結局、お教え頂いた”不可視属性”と言うキーワードで色々調べていると、Xcodeに付属しているコマンドで変更できる事が判明しました。
 具体的に言いますと、Xcodeの/Developer/Tools/内にあるSetFileコマンドを用います。manを見て頂くと分かるのですが、このコマンドのオプションに-a v(小文字)を付けると、不可視属性といものをVisibleに変更できるようです。このコマンドで隠しファイルとディレクトリの不可視属性を変更すると、Finderから全て見えるようになりました。(ただし、直後にFinderのViewに反映される訳ではないみたいです。)
隠しファイルと隠しディレクトリの解除の方法(Mac OS X 10.4.2) - - Mac OS | 教えて!goo

この質問者、回答者が的外れだったにも関わらず、わずかなきっかけからしっかり解決して、その結果まで詳細に書いてくれている。すごい。
で、今回のファイルに対してGetfileInfoしてみた。

air:~ user$ GetfileInfo ….kspb
file: "/Volumes/…/….kspb"
type: ""
creator: ""
attributes: aVbstclinmedz
created: 11/20/2008 15:52:50
modified: 11/20/2008 15:52:50

属性は「attributes:」のところ。「V」だけ大文字になっている。つまり不可視属性がONになっている。
見えるようにしたいので、不可視属性をOFFにする。

air:~ user$ SetFile -a v ….kspb

これによりFinderで見えるようになる。
なお、属性についてはman SetFileしてみると

A | a    Alias file
V | v    Invisible (allowed on folders)
B | b    Has bundle
S | s    System file (name locked)
T | t    "Stationery Pad" file
C | c    Custom icon (allowed on folders)
L | l    Locked
I | i    Inited - Finder is aware of this file and has
         given it a location in a window. (allowed on
         folders)
N | n    File has no INIT resource
M | m    Shared (can run multiple times)
E | e    Extension is hidden (allowed on folders)
D | d    Located on the desktop (allowed on folders)
Z | z    Busy (allowed on folders)

とのこと。allowed on foldersは、フォルダにも使える属性だ、ということでしょう。
SetFileで不可視ファイル作成(SetFile,GetFileInfoの使い方)| 【Proton.jp】 Mac OS X の便利なコマンド
SetFile | Terminalコーナー | Hiro's Personal Pages
も参考になる。