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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

Linux

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

Q&A

解決済

6回答

36325閲覧

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

yuki_90453

総合スコア326

CentOS

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

Linux

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

0グッド

0クリップ

投稿2017/02/15 08:00

編集2017/02/15 08:51

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

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

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

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

Centos6.8 64bit

###追記
llコマンド

-rw------- 1 root root 143061 2月 14 18:19 2017 data_get2.csv -rw------- 1 root root 77 1月 24 16:53 2017 date.txt -rw------- 1 root root 2880 1月 30 17:58 2017 list.json -rw------- 1 root root 597044 1月 24 16:55 2017 product_reviews_all.xsd -rw------- 1 root root 596955 1月 24 16:54 2017 product_reviews_refresh.xsd -rw------- 1 root root 0 2月 14 19:03 2017 キャンセル履歴.txt drw------- 2 root root 4096 2月 15 16:45 2017 在庫同期 -rw------- 1 root root 5496 2月 15 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でアップロードしました。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2017/02/15 08:26

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

回答6

0

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

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

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

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

投稿2017/02/15 09:41

gorogoroIT

総合スコア447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

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

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

投稿2017/02/15 08:54

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2017/02/15 12:24

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2017/02/15 08:43

kanbeworks

総合スコア829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2017/02/15 08:23

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki_90453

2017/02/15 08:28

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

2017/02/15 08:39

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

0

※エスパー回答です

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

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

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

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

投稿2017/02/15 08:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki_90453

2017/02/15 08:23 編集

こちらはmacです。 文字化けは見当たりません。
退会済みユーザー

退会済みユーザー

2017/02/15 08:25 編集

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

2017/02/15 08:29

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

2017/02/15 08:32

追記しましたがどうでしょう
退会済みユーザー

退会済みユーザー

2017/02/15 08:35

カレントディレクトリが間違っているんじゃないの?
退会済みユーザー

退会済みユーザー

2017/02/15 08:37

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

2017/02/15 08:46

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

退会済みユーザー

2017/02/15 08:48

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

2017/02/15 08:51

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

2017/02/15 08:52

ありがとうございます。こんなのあるんですね・
退会済みユーザー

退会済みユーザー

2017/02/15 08:55

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

2017/02/15 08:55

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

退会済みユーザー

2017/02/15 08:56

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

2017/02/15 08:58

コピペでやって動かないんで違う。
退会済みユーザー

退会済みユーザー

2017/02/15 09:02 編集

他の回答者へのフォロー忘れずに
退会済みユーザー

退会済みユーザー

2017/02/15 09:02

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問