• T sakurako

VueでWEBアプリ(28) windows側からubuntuのファイルを触って変になった

今回のは、アプリ作成というよりサブタイトルの通り、「windows側からubuntuのファイルを触って変になった」時の解決策です。


現在、これまでこの「VueでWEBアプリ」シリーズで作成してきたものとは別のアプリを作成していまして、そのアプリの機能として、入力された情報をExcelファイルとして出力するというものがあるのですが、その出力ファイルのテンプレートを修正しなければならなくなりました。


ですがその修正したテンプレートファイルの権限がPC再起動で消えてしまうというよくわからない事態がおきまして。


正直まだ原理はわかっていないのですが、一応解決させることはできたので、今後似たようなことが起こったとき面倒がないようにここに記録しておこうと思います。

備忘録のようなものなので読みにくいと思います。申し訳ありません。




環境

・VScode

・Ubuntu 18.04.4


基本的にファイルの表示・作成・修正はVScodeから、git pushなどgit関連はubuntuのターミナルから直接操作しています。(なぜかVScodeだとプッシュがうまくいかないため)




経緯

ubuntuではExcelファイルの編集はできないので、

windowsのエクスプローラーからubuntuのホームディレクトリの場所を探して、既存のテンプレートファイルをコピー・修正しました。

(参考 WSLのホームディレクトリの場所@2019



しかし、そのファイルをコミット・プッシュしようにもpermission deniedとなってしまったので、ls -alコマンドで確認すると、そのファイルはすべてのパーミッションがありませんでした。

---------- 1 ユーザ名 ユーザ名 39583 Oct 28 14:35 ファイル名.xlsx

chmod 755で権限を付与すると、コミット・プッシュはできました。

(参考 permission deniedで悩まされたので勉強してみた


ですが、PCを再起動すると、付与したはずの権限が消えてしまっていました。


いろいろ試した調べた結果、どうやら

windows側からubuntuのファイルをいじると壊れることがあるらしく

(参考 Bash on WindowsでWindows側からUbuntu側のファイルをいじると壊れることがあるので注意

流れとしては

windows側でコピーした対象のファイル、もしくは権限付与済みの対象のファイルに変更を加え保存

→ls- alで見たときのリンク数が0になる

→この状態で再起動すると権限が消える


というものでした。




解決

ubuntu内のテンプレートファイルディレクトリから、windows側にテンプレートファイルをコピー(今回はC:\Users\ユーザ名\Documents)、編集

→編集済みのExcelファイルを、ubuntuターミナルで

cp /mnt/../../filename.xlsx copyfilename.xlsx 

でubuntuのテンプレートファイルディレクトリにコピー

この時点で権限系におかしなところなし

-rwxr-xr-x 1 ユーザ名 ユーザ名 39535 Oct 28 15:23 ファイル名.xlsx

→コミット・プッシュ

→PC再起動後も権限そのままであることを確認




Excelファイルを編集するとどうしてもファイルがおかしくなるようだったので、編集済みのものを他から持ってきて、そのうえでコミット・プッシュをしてしまえば権限が消えることがないことを確認できました。



これからもなにか修正があるたび


windowsのドキュメントフォルダ内のファイルを編集

→ubuntu側でwindows側からコピーして持ってくる

→コミット・プッシュ


この手順を踏まなければならないのはちょっと面倒ですが、現状他に策が無いので…。






15回の閲覧