質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Linux

    4374questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    3086questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linuxで日本語ファイル名の取扱いついて

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 8,494

yuki_90453

score 88

いつもお世話になっております。

日本語ファイル名のファイルがあるのですが、コマンドでこのファイルを指すと「そのようなファイルはありません」となります。

上記のような現象はファイルに限り発生し、ディレクトリでは発生しません。
llやlsのコマンドを入力すると、該当のファイル名は文字化けせず表示されます。

検索すると日本語は相性がよくないようですが、何か打開策があれば教えて下さい。

Centos6.8 64bit

追記

llコマンド

-rw------- 1 root root 143061  214 18:19 2017 data_get2.csv
-rw------- 1 root root     77  124 16:53 2017 date.txt
-rw------- 1 root root   2880  130 17:58 2017 list.json
-rw------- 1 root root 597044  124 16:55 2017 product_reviews_all.xsd
-rw------- 1 root root 596955  124 16:54 2017 product_reviews_refresh.xsd
-rw------- 1 root root      0  214 19:03 2017 キャンセル履歴.txt
drw------- 2 root root   4096  215 16:45 2017 在庫同期
-rw------- 1 root root   5496  215 13:59 2017 商品データベース.json


catコマンドで該当ファイルを指す。

cat 商品データベース.json
cat: 商品データベース.json: そのようなファイルやディレクトリはありません

cat /var/www/html/Ruby/Document/商品データベース.json
cat: /var/www/html/Ruby/Document/商品データベース.json: そのようなファイルやディレクトリはありません

cat /var/www/html/Ruby/Document/list.json
→ 問題なしでした。

追加2

この日本語のファイルはFTPでアップロードしました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • can110

    2017/02/15 17:26

    差支えない範囲で具体的なファイル名(フルパス)と、実行コマンド名を記載すると回答えられやすいと思います。

    キャンセル

回答 6

checkベストアンサー

+1

Unicodeには、「見えない文字」とか「よく似ているけど違う文字」とかが混入していることもあります。

lsした結果のファイル名をコピペするとか、cat 商まで打ったところでTabでファイル名補完するとか、そういった方法でもアクセス出来ないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

既に解決されてようなので、参考までに。

「キャンセル履歴.txt」のほうも同様なメッセージになるのでしょうか。
「商品データベース.json」の濁点が悪さをしている気がします。

(記憶が定かではないのですが)MacOS のUTF-8は、デの濁点(゛)も一文字として
管理していた記憶があります。
他のOS(Linuxなど)で確認すると、親切にも一文字で見えるようになってしまうようです。

# 「UTF-8(NFC)」「UTF-8(NFD)」という種類があったような・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

※エスパー回答です

おそらくWindows で作成したファイルを CentOS にアップロードしたものについてそのような問題があるということでしょう。

まず、Windowsで作成したファイルのファイル名は Shift-JIS で作られます。CentOSにファイルを移動する際、文字コードの変換作業を行わない限り、Shift-JISでそのままコピーされます。

ところが、CentOSやMacはファイル名はUTF-8で扱われるために、Shift-JISで移動(コピー)してしまうと、いわゆる文字化けの状態となってしまうため、日本語名でファイルパスを参照できなくなります。

FTPツールなどでファイルをアップロードするときには、文字コードの変換オプションを有効にした上でアップロードしましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/15 17:22 編集

    こちらはmacです。
    文字化けは見当たりません。

    キャンセル

  • 2017/02/15 17:24 編集

    そうですか。原因の特定や対策が必要なら、追加の情報を提示してください。
    おおかた、
    パスの指定が間違っているんじゃないですか?

    キャンセル

  • 2017/02/15 17:29

    ちょっと待って下さい、用意します。

    キャンセル

  • 2017/02/15 17:32

    追記しましたがどうでしょう

    キャンセル

  • 2017/02/15 17:35

    カレントディレクトリが間違っているんじゃないの?

    キャンセル

  • 2017/02/15 17:37

    もしくは、カタカナの長音とひらがなの長音が混在しているとか。

    キャンセル

  • 2017/02/15 17:46

    追記のある通り、llコマンドを入力したディレクトリにおります。
    念のため、絶対パスでも試みました。該当のファイルは駄目でしたが、同階層にあるlist.jsonは開けることが出来ました。
    追記に記載しております。

    キャンセル

  • 2017/02/15 17:48

    「cat 商」まで入力してから、Tab キーを押して自動でファイル名選択したら?

    キャンセル

  • 2017/02/15 17:51

    すごい!!!!行けました!!!!

    キャンセル

  • 2017/02/15 17:52

    ありがとうございます。こんなのあるんですね・

    キャンセル

  • 2017/02/15 17:55

    > 検索すると日本語は相性がよくないようですが
    こんなことでハマるくらいなら、初めから英数字使えってことですな。

    キャンセル

  • 2017/02/15 17:55

    ただ、プログラムからこのファイルを指定してつかいたいのですが、このtabで入力されたファイル名をコピーしても動きません。文字コードが違うんでしょうか?

    キャンセル

  • 2017/02/15 17:56

    カタカナの長音とひらがなの長音が混在している

    キャンセル

  • 2017/02/15 17:58

    コピペでやって動かないんで違う。

    キャンセル

  • 2017/02/15 18:01 編集

    他の回答者へのフォロー忘れずに

    キャンセル

  • 2017/02/15 18:02

    > コピペでやって動かないんで違う。
    意味通じない

    キャンセル

0

半角空白を含むファイル名だったりしませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/15 17:28

    含みません。ファイル名は、商品データベース.jsonです。
    念のためllコマンドで出てきた物をコピペで入力してみましたが一緒でした。

    キャンセル

  • 2017/02/15 17:39

    気になるのは「ー」があることです。
    これが「-」(全角のマイナス)「―」(全角のダッシュ)「ー」(長音記号)で意図してるのとずれているとか…
    当該ディレクトリで find . -type f -maxdepth 0 -print0 > namedump.dmp として、\0で区切ったファイル名一覧を作って、バイナリエディタか何かでダンプを見てみるとか。

    キャンセル

0

システムの文字コードによっては、エスケープ文字が入ったりするんでうまく処理できないこともあります。
最初の文字だけ入力しTABキーで補完すると¥マークが入ってたりとか。

cat '商品データベース.json'


というように、ファイル名をシングルクォートで括ると行けたりしませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

既に解決されたようですが、
UNIX, Linux 上ではディレクトリ名やファイル名にマルチバイト文字は使わない、ってルールで運用している会社はとっても多いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Linux

    4374questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    3086questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。