Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

Linuxのファイルサーバーに移らないファイルがある?

できるLINUXという本を読み、イントラネットサーバを立てました。 特に問題ないと思うのですが、ファイルサーバーとして利用してみようと思い、windowsのパソコンからLINUXのpublicとしたフォルダへ、ファイルを移しています。  ところが、うまく移す事ができないファイルがあるのです。 何故なのでしょうか。 移るものは、すんなりと行くのですが、できないファイルはいつも特定のものです。 エラーメッセージとして、 [LINUXのpublicの移動先のフォルダ名]は存在しません。作成しますか。→(一応、はいで抜ける) もう一度、上と同じメッセージが出る。→(また、はいで抜ける) [移したいファイル名]を作成または置換できません。既に存在するファイルを作成する事はできません。” と、出ます。 よろしくお願いします! 追伸、移らないファイルを英文字に変えたら、うまくいきました。 しかし、漢字交じりのファイル名でもすんなり移るものもあります。 基本的にファイル名に漢字は用いない方がいい、という事なのでしょうか? また、漢字のファイル名が使用できるような良い方法は何かあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

linuxをファイルサーバにするために使用したソフトは何でしょうか?(samba?ftpd?その他?) 一応sambaであるとして説明します。設定ファイル(バージョンによってちがいますがsmb.confというファイルが/etc/samba/、/usr/local/etc/あたりにあると思います。 )の globalセクション([global]という行の次の行で良いです。)に client code page = 932 coding system = CAP という行をvi等のテキストエディタで追加します。これでwindowsの漢字ファイル名を、漢字を使わないように1バイト文字に変換して格納します。 「CAP」という部分は「EUC」や「SJIS」とすることができますが、OS(linux)が対応していなければいけません。(linuxが対応しているかどうかは私は知りません。) 設定ファイルを変更したら、sambaの再起動をして変更を反映させてください。

chrilake
質問者

お礼

早速ご回答を頂きありがとうございました。 書き忘れましたが、用いているソフトはsambaでした。 「CAP」のところは、一応、EUCにしてみたところ、今まで移す事ができなかったファイルもすんなりと移せました! 詳細まで書き込んで頂き、感謝いたしております。 設定ファイルを何故この様に書き込むのかは私には解りませんが、"漢字を使わないように1バイト文字に変換し格納している"との事、最初はよく解りませんでしたが、半角文字確か0.5バイトとの組み合わせ等で、最初の文字からsambaが読み込んで行くと、巡り合わせでlinuxファイル名に禁止されている文字に解釈され、うまく移せない思わぬトラブルとなる、という事なのでしょうか。 もし宜しかったら追記して頂ければありがたいです。 とりあえず、差し支えなくファイルサーバが使えるようになりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

coding systemを特に指定していなかったということであれば、Windowsの漢字ファイル名を変換せずにやりとりしていたということだと思います。 「coding system=EUC」の場合、内部に変換テーブルを持っていて、適切に処理するようになっているはずです。 「coding system=CAP」の場合「漢字のファイル.txt」を「:8a:bf:8e:9a:82:cc:83t:83@:83C:83:8b.txt」のようにマルチバイト文字を「:」+2桁の16進数に変換します。したがってsambaサーバを起動しているOS(のファイルシステム)のマルチバイト対応の有無にかかわらず、ファイルを格納できます。 日本語ファイル名の使用の可否についてですが、その日本語ファイルの使用状況によって変わってきます。 (1)sambaはwindows用のファイル置き場として使用しているだけの場合 「CAP」でも「EUC」でもかまいませんが、(2)(3)のような事が予想されるなら、そちらに合わせておいたほうが良いかもしれません。ただ緊急時には「CAP」の方が扱いやすいです。 (2)Macでも同時にファイル共有を行いたい場合 「CAP」というMacとのファイル共有ソフトを使用する場合(encoding system=CAPとはCAPというソフトの互換方式という意味です)、「CAP」を指定することによって、MacとWinで参照できるファイルサーバが実現できます。 (3)日本語ファイル名のファイルをlinux側でも使用する場合 linuxで日本語ファイル名を扱う場合、アプリケーションが日本語ファイル名を扱える事が必要になります。ディストリビューションによってこの辺の対応状況が違うと思いますが、自分の使用するコマンドが日本語ファイル名に対応しているかどうかの確認が必要です。「CAP」はその辺の確認が不要だという点で楽です。 というわけで、「CAP」が無難でオススメですが、「EUC」にする事によるリスクを理解していれば「EUC」でもかまわないと思います。

chrilake
質問者

お礼

再度のご回答、本当にありがとうございました。 codingsystem = CAP に変更しました。 素人とは誠に恐ろしいもので、”できる!”等と言う字を見たりするとまるきり知らないのですから無理もありませんが、何でもデキテシマウ、と思ってツイツイ手を出してしまいます。 パソコン、linuxを使う、と簡単には言うものの、本当に多くの人の考えた事が詰まっていて、奥の深いものだと思いました。 少しづつでも慣れていこうと思いますので、恐れ入りますがまた何かの折には、宜しくお願いします。

すると、全ての回答が全文表示されます。
  • ken2
  • ベストアンサー率36% (86/235)
回答No.3

UNIX上で使えなくてWindowsで使えるファイル名となると「 」(スペース)の入っているファイル名じゃないでしょうか? 私から見れば、Windowsで、スペースの入ったファイル名が使えること事態が許せないのですが・・・。

chrilake
質問者

お礼

ご回答をお寄せ頂き、ありがとうございました。 スペースを含むファイル名もだめなのですか。 *、\、?はlinuxでは使わないようにする、という事には気をつけていたのですが、知りませんでした。 漢字.拡張子のファイル名でもうまく移せないものが中にはありました。 うまく行く、と思っても予期せぬ事が多々、出て来てしまってハマッてしまう事があり、アタフタしてしまいます。 またいろいろお願いします。

すると、全ての回答が全文表示されます。
  • oodaiko
  • ベストアンサー率67% (126/186)
回答No.2

できるLINUXをお読みになったと言うことは付属のCDからコンパイル済のsambaを インストールされたのでしょうか? 本来はコンパイル時オプションか設定ファイルで指定しないと日本語ファイル名は使え ないはずなのですがちゃんと読み書きができるのならそれは設定済と考えて良いでしょう。 そこでエラーの原因ですが、もしかして移らないファイルの名前に半角かな文字、 または機種依存文字(○で囲んだ数字やローマ数字も機種依存文字です。)を使われ ていないでしょうか。これらはLINUX上ではエラーの原因になります。 また一応日本語対応になっているはずのsambaにしても、日本語名ファイルを扱うと たまにバグが出るようです。 本来はLINUXに限らずUNIX系のOSでは原則としてファイル名に日本語は使えません。 だから確実にファイルを送りたければ基本的にファイル名に日本語は使わないのが 良いと思います。(解決になりませんが (^^;;

chrilake
質問者

お礼

御回答ありがとうございます。 半角かな文字でないもの、機種依存文字でないファイルでもうまく移せないものがありました。 (全部漢字.拡張子のファイルも移せないのがある) ウーン、漢字のファイル名の方が短い文字数で分かりやすく表記できるので、漢字を使いたいのですが、欲張りすぎるのでしょうか。 なにか、簡単にいく方法があればありがたいのですが。

すると、全ての回答が全文表示されます。

関連するQ&A