MacでNASのファイルを開くと変なファイルができるので直してみた
MacでNASのファイルを開くと._(開いたファイル名)
という名前のファイルができます。
ぐぐるとリソースフォークAppleDouble Header fileというmacOSのファイルシステム固有の仕様のようです。
しばらくは放っておいたのですが勝手にファイルを作られるとディレクトリのタイムスタンプが更新されてディレクトリをソートする際に大変不便だったので色々調べてみました。
macOSで無効化できないか?
結論を先にいうとできませんでした。.DS_Store
は下のコマンドで無効化できたんですけどAppleDouble Header fileの無効化はできませんでした。
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
NAS側でなんとかする
macOSでできないとなると後はNAS(Samba)側でなんとかするしかありません。 色々探してみるとmacOS向けの設定オプションがありました。
動作環境
前提条件として動作環境を載せときます。
リソースフォークを消す
最初に既にあるリソースフォークを消します。macOSにはdot_clean
という便利なコマンドがあるのでそれで消せます。
dot_clean /Volumes/(マウントしているNASの名前)
Sambaの設定変更
/etc/samba/smb.conf
に# For interoperability with macOS
以下の項目を追加しました。
[shared] path = /shared browseable = Yes read only = No # For interoperability with macOS vfs objects = catia fruit streams_xattr fruit:encoding = native streams_xattr:prefix = user. streams_xattr:store_stream_type = no
smb.confを編集したらsambaをリロードします
$ sudo systemctl reload smbd $ sudo systemctl reload nmbd
動作確認
試しにLinuxのコンソールからhogehoge.txtを作りました。 拡張属性はgetfattrコマンドで確認できますが作った直後は何もありません。
tsuyosh@enterprise:/shared$ touch hogehoge.txt tsuyosh@enterprise:/shared$ getfattr -d hogehoge.txt
Mac上から開くと何も変更を加えなくても下のように更新時間?が保存されます。
tsuyosh@enterprise:/shared$ getfattr -d hogehoge.txt # file: hogehoge.txt user.com.apple.lastuseddate#PS=0sDLILXQAAAACR38suAAAAAAA=