FirefoxのアドオンFireFTPを利用してダウンロードしたファイルを、lsコマンドで表示するとファイルパーミッションの右側に「@」が表示されていました。
これまで気にしていなかったのですが、 「.htaccess」ファイルをFireFTP上からCotEditorで開こうとすると、上記ダイアログが表示され編集できません。
lsコマンドでファイル情報を表示すると次のように表示されました。
-rw-r--r--@ 1 haya staff 116 11 8 10:19 .htaccess
この「@」は「拡張属性(Extended Attribute)」が付加されていることを表し、UnixではなくMacのファイルシステムであるHFSに追加されている情報、なのだとか。
Macはもともと独自のOSで、ファイルデータはファイルの中身である「データフォーク」と、アイコン情報が格納された「リソースフォーク」の2種類ありました。拡張属性はその概念とは異なる、ファイルに関する情報を格納する仕様のようですが、今は時間が足りないので詳細は後日調べてみようかと思います。
拡張属性に関する操作は「xattr」コマンドを利用し、次のように拡張属性の内容が確認できます。
$ xattr .htaccess com.apple.TextEncoding
別のダウンロードファイルの例です。
$ xattr date.php com.apple.quarantine
quarantineを調べると意味は「検疫、隔離」ということで、インターネットからダウンロードされたファイルに対する防御のための属性なのでしょうか?
この拡張属性はxattrコマンドに-dオプションを指定して削除ができます。
$ xattr -d date.php
実は拡張属性の話より、こちらを解決したかったのです。
どうやらdefaultsコマンドで設定を変更し、Finderを起動し直しすればOKのようです。
$ defaults write com.apple.finder AppleShowAllFiles TRUE $ killall Finder
試したところ、うまくいきました。元に戻すにはAppleShowAllFilesをFALSEに設定します。
さて、FireFTPから.htaccessを指定して開いてみると、エラーダイアログが表示されずに編集画面が開くようになりました。
そこで、xattrコマンドで属性が変更されたか確認したところ、変わりありませんでした。
う〜ん、まだ理解が及ばない部分があるようです。後日また機会があれば調べてみようかと思います。
記事とは関係ありませんが、現在利用しているMac miniの情報です。
もうそろそろ5年になります。そろそろ新しいMac mini出してください > Appleさん