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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3022閲覧

Bash on Ubuntu on Windowsで一部ファイルが認識されていない

dkwbt

総合スコア7

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/09/30 16:26

Bash on Ubuntu on WindowsでRailsプロジェクトを作成したところ、一部ファイルがBashから認識されません。
ファイルが存在していないわけではなく、エクスプローラーやWindowsのコマンドからは確認できます。

Bashで確認した場合
drwxrwxrwx 2 root root 0 Sep 29 23:03 . drwxrwxrwx 2 root root 0 Sep 29 22:52 .. drwxrwxrwx 2 root root 0 Sep 29 22:52 .bundle -rw-rw-rw- 1 root root 543 Sep 29 22:51 .gitignore -rw-rw-rw- 1 root root 4253 Sep 29 23:08 Gemfile.lock -rw-rw-rw- 1 root root 374 Sep 29 22:51 README.md -rw-rw-rw- 1 root root 227 Sep 29 22:51 Rakefile drwxrwxrwx 2 root root 0 Sep 29 22:51 app drwxr-xr-x 2 root root 0 Sep 29 22:51 bin drwxrwxrwx 2 root root 0 Sep 29 22:51 config -rw-rw-rw- 1 root root 130 Sep 29 22:51 config.ru drwxrwxrwx 2 root root 0 Sep 29 23:13 db drwxrwxrwx 2 root root 0 Sep 29 22:51 lib drwxrwxrwx 2 root root 0 Sep 29 23:09 log drwxrwxrwx 2 root root 0 Sep 29 22:51 public drwxrwxrwx 2 root root 0 Sep 29 22:51 test drwxrwxrwx 2 root root 0 Sep 29 23:09 tmp drwxrwxrwx 2 root root 0 Sep 30 21:29 vendor
Windowsのコマンドで確認した場合
2016/09/30 21:37 <DIR> . 2016/09/30 21:37 <DIR> .. 2016/09/29 22:52 <DIR> .bundle 2016/09/29 22:51 543 .gitignore 2016/09/29 22:51 <DIR> app 2016/09/29 22:51 <DIR> bin 2016/09/29 22:51 <DIR> config 2016/09/29 22:51 130 config.ru 2016/09/29 23:13 <DIR> db 2016/09/30 21:35 1,746 Gemfile 2016/09/29 23:08 4,253 Gemfile.lock 2016/09/29 22:51 <DIR> lib 2016/09/29 23:09 <DIR> log 2016/09/29 22:51 <DIR> public 2016/09/29 22:51 227 Rakefile 2016/09/29 22:51 374 README.md 2016/09/29 22:51 <DIR> test 2016/09/29 23:09 <DIR> tmp 2016/09/30 21:29 <DIR> vendor

上記の例では、Gemfileが認識されていません。
この状態を解消する方法はあるのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

推測ですが、エクスプローラー等のWindows側のアプリで作成したり移動したりしたファイルではないでしょうか?エクスプローラーで新規作成したファイルがBash on Ubuntu on Windows(以下Bash)では見えないことを手元の環境でも確認しました。一度ファイルを削除して、Bash上で再作成する以外に復旧する方法はないと思われます。

詳しいファイルシステムの仕組みやIssues等の情報は見つけられませんでしたが、下記のようになっていると推測されます。

Bashのファイルシステムは、Windows上のNTFSであるにもかかわらず、かなり特殊なファイルシステムとして動作します。本来NFTSにはPOSIX形式のモード(rwxrwxrwxというやつ)や大文字小文字の区別(本当はありますが、レジストリを変えないとWinアプリからは区別できない)などがありません。しかし、Bashではモードが存在し、大文字小文字区別を行います。特にモードについてですが、chmodでモードを変更してもNTFS上のACLに変更が無い事から、これらの情報はNTFSとは別の所で管理されていると思われます。ファイルの実体はNTFSに置いてあるが、実際にアクセスするときは、別に存在するファイルシステム管理DBを通じて、NTFS上のファイル実体へアクセスするという感じです。そのため、Bash以外で作成したファイルは、そのファイルシステム管理DB側に情報が追加されないため、Bashからは見えないではないかと推測されます。

なお、/mnt/c配下はマウントという形を取っているため、直接情報をNTFSから取っていると考えられます。モードはNTFSのACLが一応反映されるようなのですが、chmodでモード変更などはできないなどある程度の制限があります(ただし、大文字小文字の区別はできるようです)。

投稿2016/10/01 14:07

raccy

総合スコア21735

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

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

dkwbt

2016/10/01 15:08

該当ファイルはBash側で作成したものをWindowsのエディタで編集したファイルでした。 その際に、raccyさんの記載されているような状況になったようです。 Bash on Ubuntu on Windowsのファイルシステムに関しても詳しく記述していただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問