"..." というディレクトリが "..¥.." として扱われる

提供:Samba-JP
2006年8月24日 (木) 02:43時点におけるRibbon (トーク | 投稿記録)による版 (ページ "..." というディレクトリが "..\.." として扱われる"..." というディレクトリが "..¥.." として扱われる へ移動: ¥がエスケープ文字のため大文字化)
ナビゲーションに移動検索に移動
KB番号 J0113
最終更新日 2002/2/22
作成者 はせがわようすけ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。 これは現象が発生することを確認した環境であり、下記以外の環境でも同様の現象が発生する可能性があります。

  • Samba 2.0.x
  • Samba 2.2.2
  • Windows 98

現象

Samba で共有しているディレクトリに UNIX 上で "..." や "...." のようにピリオドだけで 構成されるディレクトリを作成した場合、これらのディレクトリに Windows クライアントから アクセスすると、"..." であれば "..\.." に、"...." であれば "..\..\.." にアクセスしたかの ように振舞います。

例えば、\\Samba\Share\dir1 というディレクトリにある "..." というディレクトリを エクスプローラで表示させようとすると、\\Samba\Share が表示されます。

このため、Windows 上でディレクトリを再帰的に辿るようなプログラムを実行させた場合、 処理が完了しないことがあります。 また、フォルダを再帰的に辿りながらファイルを削除するようなプログラムの場合、 場合によっては意図しないファイルまで削除される可能性があります。

原因

これは、Windows 95 以降のディレクトリ名に対する扱いの仕様に起因します。

Windows 95 以降のOSでは、"..." や "...." のようなディレクトリはそれぞれ "..\.." や "..\..\.." を表わします。 (このことは、Windows95/98であれば C:\Windows\tips.txt に記載されています。)

Windows 上では "..." のようなピリオドだけで構成されるディレクトリは作成できませんので このような問題は発生しませんが、UNIX では "/" を除く任意の文字を使ってディレクトリを 作成できるため、このような Windows からのアクセスでは不都合の発生するディレクトリも 作成することができます。

対処策

対処策はありません。

UNIX 側でこのようなディレクトリを作成しないようにしてください。