このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

OS X の Windows (SMB) 共有でドットファイルを作らせない方法

発言者:田吾作
( Date Friday, August 13, 2004 12:32:52 )


OS X 10.3 で Windows の共有ディスクをマウントしてファイルを書き込むと
データの入ったファイル以外に、ファイル情報などを収めたドットで始まる
不可視のファイルを作りますよね?

あのファイルを作らせないようにする設定は可能なのでしょうか?

ろばたろう さんからのコメント
( Friday, August 13, 2004 15:10:08 )

サーバがOSXでクライアントがWindowsでアクセスしたときに共有ディレクトリで
.AppleDoubleなどが見えるのをなくしたいということでしょうか?

Macintoshには必要なファイルですからWindowsにとって
不要なものはマスクするという設定になると思います。

・ターミナルでsmb.confというファイルを探します。
・念のためバックアップをとった後エディターでsmb.confを編集します。
 [共有名]内に
 veto files = /マスクしたいファイル名orディレクトリ名/...と追記します。
・保存終了しwindows共有機能を再起動します。

OSX10.3ということでOSXserver版でないと推測しますが、
上記の例はserverがVineLinux+sambaの例ですので間違っていましたらごめんなさい。

田中求之 さんからのコメント
( Friday, August 13, 2004 15:19:14 )

便乗で質問させてください。

クライアントが OS X でサーバが Windows XP の時に、ドットファイルが Windows 上に
作られないようにするにはどうしたらいいのでしょうか? 同僚から相談されて、私も
分からなかったので、ご存知の方、教えていただけますか?

たまちゃん さんからのコメント
( Friday, August 13, 2004 22:48:54 )

あちこち関連しそうなところを調べましたが,Windows側で不可視
ファイルを作らせないようにする設定はないようでした。

Mac OS X 側でそのたびに消去しているようですね。

http://web.macosx.nl/~timgoeree/icleanup.html

できるぞという場合はコメントを是非。

田吾作 さんからのコメント
( Saturday, August 14, 2004 13:48:56 )

みなさん、ありがとうございます。

私の状況というのは田中さんといっしょで、OS X から Windows XP の共有フォルダ
にアクセスしてファイルを書き込んだときの話なんです。

会社の同僚の Windows にファイルをネットワークで渡してるんですが、いつも変な
ファイルも一緒に書き込むって言われたんで、調べてたんですが、わからなかったの
です。

無理ならあきらめます。

えむ さんからのコメント
( Tuesday, September 14, 2004 18:04:16 )

私も似たような状況で困ってます。
(サーバーはWindows NT Server 4.0。)

DAVE4.0の製品情報のページに「.(ドット)で始まる名称のファイルを
NTFSボリューム内に作らない」と書いてあるんですが、私の環境では
なぜかダメでした。
まだメーカーには問い合わせてません。
OSは現在 Mac OS X 10.3.5です。

DAVEをVer.5にバージョンアップすれば解消するのかもしれません。
もしもうまくいったら報告しますね。

→  DAVE v5

pipi さんからのコメント
( Wednesday, September 15, 2004 09:17:39 )

下記の内容をメモ帳で開いて、
ファイル名を付けて、拡張子.batで保存
WINにそのファイルを置く
Wクリックで実行すれば、DOSプロンプトが開いて
ファイルを置いてある階層とその下の、
ドットアンダーバー始まりのファイルと.DS_Storeを削除します。
WINに詳しい人に聞いたところ、
WINではドットアンダーバー始まりのファイルは無いと、
ということで、
全部削除してしまいます(私は使っていますが・・・気持ち不安)。
MACからファイルを持っていく度にWIN側でしないといけませんが・・・
WINのバージョン(NT4.0?)によっては、
-h当たりが通らなかったかと?
プロンプトのヘルプでattribの所、見て下さい。
その際はその部分を削除だったか???

-----------------------------------------------------ここから
@echo off
cls
echo. 
echo.中止するときは、CTRL+C
echo.
pause
echo.
echo.アセラズ、まちましょう...
echo.
attrib -r -h ._* /s /d
del ._* /s
echo.
attrib -r -h .DS_Store /s /d
del .DS_Store /s
echo.
echo.終了しました。
echo.
pause
-----------------------------------------------------ここまで

田中求之 さんからのコメント
( Wednesday, September 15, 2004 14:02:34 )

なるほど、バッチファイルで一括削除って手がありましたね。

さっそく Windows XP Pro で書いていただいたバッチファイルを試してみま
した。iTunes のデータ専用にしてあるハードディスク(1万曲あまりで 60G
ほどの容量のデータが iBook から smb 共有によって書き込まれている)で
やったのですが、あっという間にきれいさっぱりドットファイルが消えました。

バッチファイルを作らないまでも、コマンドプロンプトで、削除したい
フォルダーに移動してから

attrib -r -h ._* /s /d
del ._* /s

attrib -r -h .DS_Store /s /d
del .DS_Store /s

の4行をコマンドプロンプトで実行するっていうのでもいいわけでよね。

しっかり覚えておくことにします。ありがとうございました。