人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows Vista + cygwin環境下にて、
『07.テキスト管理表』といった特定の日本語の文字を含んだ
ディレクトリまたはファイルをcp,あるいはrsyncしようとすると、
cannot stat `ファイル名またはディレクトリ名` Not found directory or file.
とエラーになります。
日本語を別の文字に変えた場合はエラーが出ないため、原因の特定が難しくなっております。

このような場合、どのようにすればエラーを出すことなく日本語を含んだファイル操作を行えるのでしょうか?

●質問者: takets
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CP cygwin NOT FOUND rsync Windows Vista
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● JULY
●35ポイント

おそらく、Shift_JIS の取り扱いに関する問題だと思います。

Shift_JIS - Wikipedia

上記ページの「2バイト目が5C等になりうることによる問題」に詳しい話が書いてあり、これに該当する文字に「表」も含まれます。

ただ、cygwin 1.7.1 以降、デフォルトの文字コードが UTF-8 になり、Shift_JIS 固有の問題は無くなっています。手元の cygwin 1.7.7 on XP の環境では、上記のファイル名は問題なく扱えました。

下記のページに、cygwin 1.7 以降での日本語環境に関する解説があります。

Life with Cygwin 23

◎質問者からの返答

ありがとうございます。

確認したところ、cygwinのバージョンは1.7.1以降でしたが、zshの文字コードがSJISのため問題が起こったのかもしれません。


2 ● Galapagos
●35ポイント

円マーク問題として知られているトラブルです。


Windowsのファイル名の実体はシフトJISコードで格納されています。

"07.テキスト管理表" の "表" は、シフトJISコードで 955C です。

ここで、5C はASCIIコードで \ (円マークまたはバックスラッシュ)に当たります。

つまり、ディレクトリ区切り文字と同じ \ なのです。

さらに、95 は ASCII コードに存在しない文字です。

このため cygwin は "07.テキスト管理表" を "07.テキスト管理?\" というディレクトリ(?は判別できない半角1文字)として認識し、ご質問にあるようなエラーになるわけです。


対処策としては、5C を含まない全角文字を使うしかありませんが、これをいちいちチェックするのは大変です。

cygwin でアクセスするファイル/ディレクトリは英数字に限定した方が無難だと思います。

◎質問者からの返答

ありがとうございます。

固有の問題だったのですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ