Mengapa, ketika saya membuat file dari dalam Windows misalnya, saya tidak dapat melihatnya di bawah sub sistem Linux di Windows 10 (bash.exe)
Tangkapan layar harus menjelaskan.
Folder: OMG dibuat dari dalam Windows Explorer. Folder OMGBash dibuat dari dengan sub sistem Linux bash.exe
Ketika folder ATAU file dibuat di luar bash.exe, saya tidak akan pernah melihatnya, terlepas dari izin dan kepemilikan.
Untuk menunjukkan informasi yang saya harus menggunakan Cygwin untuk menunjukkan izin file, saya juga telah mengubah izin untuk melihat apakah folder tersebut akan muncul. (Dua jendela perintah di bagian bawah)
Tangkapan layar yang memperlihatkan izin folder, bash.exe, dan Cygwin:
Saya mencoba untuk memindahkan semua skrip Cygwin saya ke subsistem Linux, tetapi saya tidak suka membuat ulang setiap file, kemudian harus menyalin dan melewati menggunakan bash, kemudian memformat ulang kemudian menggunakan Dos2unix (sangat panjang lebar).
Temukan ini di GitHub untuk subsistem Linux:
menyalin langsung ke subsistem Linux dari Windows tidak didukung, menurut diskusi pada tiket lainnya. Ada direktori di bawah AppData di suatu tempat (saya lupa di mana) yang tampaknya berisi file-file untuk sistem file WSL. Tetapi jika Anda meletakkan file baru di sana, atau memodifikasi file yang ada di sana, perubahan Anda tidak tercermin dengan benar di dalam WSL.
Dugaan terbaik saya adalah bahwa Linux perlu menyimpan metadata yang berbeda (dan lebih banyak informasi caching, dll, karena model disk-buffering juga berbeda) tentang file-file tersebut daripada Windows, dan bahwa ini saat ini diimplementasikan dengan menyimpan salinan utama struktur. dari sistem file Linux dalam suatu database, dan hanya menggunakan sistem file Windows sebagai BLOB-store yang nyaman untuk database itu.
Jika Anda benar-benar perlu melakukan ini, solusinya adalah dengan menulis skrip drag'n'drop .bat atau semacam itu yang melakukan bash.exe -c "mv% 1 / home / $ USER /". (Anda harus melakukan beberapa pekerjaan pintar dengan sed dan tr, mungkin, untuk menerjemahkan% 1 ke jalur WSL yang valid.)
Atau - dapatkah Anda meletakkan file Anda di direktori Windows dan, di dalam WSL, lakukan "cd ~; ln -s / mnt / c / path / ke / my / files" untuk membuatnya tampak berada di homedir WSL Anda?
sumber
cp -r --no-preserve=all
Untuk membatalkan izin sebelumnya. Namun, jika Anda ingin membuat perubahan besar, Anda tidak dapat menggunakan aplikasi windows untuk mengedit file di LinuxSubSystem, Anda harus mengeditnya, di Direktori windows Anda dan kemudian salin. Sekarang saya tahu ini, ini bisa diterapkan, TETAPI saya mendapat kesan bahwa Sistem Sub Linux lebih asli / terintegrasi ke dalam windows daripada OS Terisolasi%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.Jawaban:
Saya tidak yakin apakah saya salah mengerti pertanyaan Anda, tetapi bash ubuntu Anda (jendela kanan atas) harus memiliki akses ke cakram berbasis Windows di bawah
/mnt
. Sebagai contoh, pada komputer saya/mnt/c/Users/Scott/Desktop
adalah desktop Windows saya dan saya dapat membaca / menulis file dari vi untuk ex. Saya tidak percaya yang sebaliknya itu benar dulu. Artinya, saya tidak berpikir Anda dapat menjelajahi dunia bash Anda dari Windows explorer.Apa yang saya lakukan sebagai pengembang adalah meng-host proyek pada d: dan mengarahkan alat berbasis linux ke
/mnt/d/projects/someproject/
folder itu.Pastikan Anda memperbarui Windows build Anda secara berkala karena mereka tampaknya memperbaiki banyak masalah dengan masing-masing build, terutama di sekitar sym-link dan melintasi batas FS antara Linux / Windows.
sumber
@ scottt732 menjawab dengan indah.
Hanya tip untuk pengembang yang akan bekerja di Windows dan ingin mengakses file-file di Subsistem Linux sangat cepat. Anda dapat menggunakan tautan simbolis .
Misalnya Jika Anda sedang mengerjakan proyek
d:/projects/web-project
, Anda dapat membuat symlink di lokasi/var/www/web-project
dan semua file yang Anda ubah di windows akan tersedia untuk diakses di Linux Bash.Untuk ini, Anda akan menggunakan
ln
perintah seperti iniPada baris di atas
/mnt/d
dimaksudkan untuk menjadi drive Anda di windows. Siapkan host virtual Apache Anda ke jalur ini dan Anda siap berangkat.sumber
css-file.css
,. Saya telah memposting tentang masalah ini di sini .Kami menyarankan Anda untuk tidak menyalin / membuat / memperbarui file Linux menggunakan aplikasi Windows .
Sebagai gantinya, simpan file dalam sistem file Windows (misalnya
c:\dev\project
) yang ingin Anda edit file menggunakan alat Windows dan / atau build / test / run menggunakan alat Linux / runtime / platform (misalnya via/mnt/c/dev/project
).Dalam skenario spesifik Anda, jika Anda ingin menyalin file Cygwin Anda ke Bash, kemudian buka Bash dan salin file dari folder Cygwin Anda di C: ke
~/
, seperti inicp /mnt/c/Users/dave/Documents/Cygwin/* ~/
:)HTH.
sumber
Saya memiliki kebutuhan untuk bekerja dengan PyCharm / eclipse pada Windows 10 sementara untuk menjalankan / testind saya membutuhkan lingkungan Linux;
Saya memiliki masalah untuk memeriksa dari git ke dalam Sub Sistem Linux dan mengedit dengan file PyCharm tidak terlihat dengan segera dan memiliki masalah;
Saya memiliki yang di atas di .bashrc saya di daerah Ubuntu. Ini bekerja dengan mulus. Saya dapat mengedit Windows dan menjalankan / menguji di Ubuntu tanpa masalah.
sumber
Saya memiliki kebutuhan serupa untuk menyalin file antara WSL dan win10. Saya akhirnya mengaktifkan sshd pada instalasi Ubuntu sehingga saya bisa ssh ke Linux dari win10. Lalu saya menggunakan wincp untuk menyalin file bolak-balik. Tidak optimal, tetapi saya tidak sering menyalin file. Saya mencoba menemukan posting yang saya gunakan untuk mengaktifkan sshd tetapi tidak dapat menemukannya.
sumber