元のファイルの改行コードはLFなのに、
Windowsからファイルを共有すると勝手に改行コードがCRLFになってしまい、
シェルスクリプトが実行できず困っております。
Windows + Hyper-V + Vagrant で、LFはLFのままファイル共有をする方法はないでしょうか?
環境
Windows 10 Pro
Vagrant 2.2.9
Git Bash 4.4.23(1)-release (x86_64-pc-msys)
- git管理のディレクトリ /vagrant/hoge を smb で共有。
gitの改行コード設定確認
$ git config --global core.autocrlf input
git bash からコマンドでCRLFのあるファイルを検索
$ find . -type f | xargs grep -lzUP '\r\n'
検出なし。
Vagrantファイルの共有設定
# フォルダ共有設定 config.vm.synced_folder "./hoge.", "/vagrant/hoge", type: "smb"
Vagrant起動&接続
vagrant up vagrant ssh
コマンドでCRLFのあるファイルを検索
[vagrant@centos8 bin]$ find . -type f | xargs grep -lzUP '\r\n' ./console ./phpunit ./recreate.sh
検出される。
他に試した方法
# フォルダ共有設定 config.vm.synced_folder "./hoge", "/vagrant/hoge", :owner=> 'vagrant', :group=>'web', :mount_options => ['dmode=775', 'fmode=775']
結果は同じくCRLFのあるファイルとして検出される。
追記
すみません、VMは起動しますが「No valid IDs were given to the NFS synced folder implementation to prune. This is an internal bug with Vagrant and an issue should be filed.」というファイル共有のエラーが出ていました。
共有したファイルはVM内に存在しますが、ホスト側で編集してもゲスト側のファイルが変更されません。
$ vagrant reload ==> default: Attempting graceful shutdown of VM... default: Configuring the VM... ==> default: Starting the machine... ==> default: Waiting for the machine to report its IP address... default: Timeout: 120 seconds default: IP: 192.168.151.2 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 192.168.151.2:22 default: SSH username: vagrant default: SSH auth method: private key ==> default: Machine booted and ready! No valid IDs were given to the NFS synced folder implementation to prune. This is an internal bug with Vagrant and an issue should be filed.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/22 12:02
2020/06/22 12:16
2020/06/22 12:39