Buat folder dari Windows lalu akses dari Bash di Windows 10 WSL

2

Saya menjalankan Ubuntu dari Windows.

Ketika saya membuat folder dari Windows dipanggil newFolderdi direktori root C:\Users\myuser\AppData\Local\lxss\root\Newfolderkemudian dari Bash ketika saya menjalankan lssaya tidak melihat folder baru yang baru saja dibuat.

Bagaimana saya bisa memperbaikinya sehingga saya dapat membuat folder dan file dari Windows kemudian mengaksesnya dari Bash?

tq
sumber

Jawaban:

3

Memperbarui:

Sejak Windows 10 versi 1903 dimungkinkan untuk mengakses file Linux dari Windows \\wsl$\. Jadi, Anda dapat lari explorer.exe .dari bash atau \\wsl$\langsung masuk ke bilah alamat Explorer

Lihat Apa yang baru untuk WSL di Windows 10 versi 1903?

Sekali lagi masih ada peringatan bahwa Anda TIDAK boleh mengakses file Linux Anda melalui folder AppData!

Untuk versi Windows 10 yang lebih lama lihat di bawah


File Linux dalam sistem file root WSL dibuat khusus dengan izin POSIX yang disimpan dalam atribut diperluas NTFS. Anda dapat melihatnya dengan menjalankan fsutil file layout lxss\rootdan melihat $EAaliran di sana. Jika Anda membuat file langsung dari Windows Anda akan mengacaukan semuanya karena aplikasi win32 tidak tahu apa-apa tentang Linux dan metadata file-nya

Masalah muncul ketika, misalnya, Anda menggunakan aplikasi / alat Windows untuk membuka, membuat dan / atau memodifikasi file di bawah distro root Anda: Karena file tersebut dibuat dengan alat Windows, file tersebut tidak akan memiliki metadata file Linux apa pun (mis. izin, pemilik, cap akses / perbarui, dll.). Jadi, untuk Linux, (yang hanya menerima metadata file Linux), file tersebut dapat dilaporkan sebagai kosong , bahkan mungkin tidak ada, atau mungkin memiliki beberapa metadata, tetapi metadata itu mungkin tidak mencerminkan rincian file yang mengakibatkan konten file terkorupsi .

Karena itu MS dengan berani memperingatkan itu

JANGAN, dalam keadaan APAPUN, buat dan / atau modifikasi file Linux menggunakan aplikasi Windows, alat, skrip, konsol, dll.

Membuat / mengubah file Linux dari Windows kemungkinan akan mengakibatkan korupsi data dan / atau merusak lingkungan Linux Anda mengharuskan Anda untuk menghapus & menginstal ulang distro Anda!

Jangan mengubah file Linux menggunakan aplikasi dan alat Windows

File yang hanya relevan dengan Linux harus dibuat hanya dari WSL. Jika Anda ingin membuat file yang dapat diakses kedua sistem kemudian buat mereka di luar WSL root dan akses dari WSL melalui mount point di /mntlike/mnt/drive/path

Jika Anda ingin membuat file pada sistem file Windows tetapi pertahankan sensibilitas case kemudian gunakan

fsutil file setCaseSensitiveInfo <directory name> enable

Bendera juga dapat diperiksa fsutil file queryCaseSensitiveInfo <directory name>

Lihat juga Bagaimana cara mengakses file linux / Ubuntu dari Windows 10 WSL?

phuclv
sumber
Bukankah masalah dengan mengakses file dari WSL di konversi Windows EOL? Jika demikian, itu dapat dihindari dengan editor teks lintas platform seperti Atom atau VScode , atau editor kode Windows seperti NotePad ++
JW0914
@ JW0914 no. siapa yang berbicara tentang file teks? Apakah Anda bahkan membaca apa yang saya kutip? Masalahnya adalah bahwa setiap file yang dibuat dari Windows tidak memiliki metadata Linux dan dapat dilaporkan sebagai kosong (yang diamati OP), bahkan mungkin tidak ada, atau mungkin memiliki beberapa metadata, tetapi metadata itu mungkin tidak mencerminkan rincian file. mengakibatkan isi file rusak . Mengenai EOL bahkan Notepad saat ini memiliki kemampuan untuk membukanya sedangkan Wordpad dan IE dapat membukanya selama beberapa dekade
phuclv
Saya mengabaikan blok kutipan pertama Anda karena yang kedua, terima kasih telah menunjukkan itu =] Mengenai "Mengenai EOL maka bahkan Notepad saat ini memiliki kemampuan untuk membukanya sedangkan Wordpad dan IE dapat membukanya selama beberapa dekade" , membuka ya, mengedit pada Windows , sambil mempertahankan LF EOLs, tidak (walaupun saya pikir Notepad akhirnya dapat menerima fitur itu dengan pembaruan terkini).
JW0914
1
@ JW0914 Notepad memang memiliki kemampuan untuk mengedit file yang mengirim LF (dan CR), dan ia mendapatkan banyak fitur baru . Memang tidak banyak orang yang menggunakannya dan tidak memiliki banyak fitur yang bermanfaat, tetapi lihat Memelihara Notepad bukanlah pekerjaan penuh waktu, tapi itu juga bukan pekerjaan kosong
phuclv
3

Anda tidak dapat membuat folder di Ubuntu dan mengaksesnya dari Windows. Tapi Anda bisa melakukan yang sebaliknya.

Anda dapat mengakses drive Windows Anda di /mnt. Jika Anda melakukannya, ls /mntAnda akan melihat semua drive Anda. Jadi / mnt / c adalah jalur drive C Anda. Demikian pula /mnt/c/Users/username/Desktopdapat memberi Anda akses ke desktop Anda di Bash.

Jadi, cukup jangkau jalur yang Anda inginkan menggunakan Bash dan akses file & folder windows. Untuk detail lebih lanjut tentang cara membuat akses cepat ke file windows Anda, gunakan symlink, detail dapat ditemukan di sini

Riz
sumber
1

Balikkan pemikiran Anda: Jika Anda ingin membuat file menggunakan aplikasi & alat Windows, dan mengaksesnya dari Bash, kemudian buat file tersebut dll di sistem file Windows Anda dan akses / salin dari Bash.

Berikut adalah contoh membuat file di PowerShell, lalu memanggil Bash untuk menyalin file yang dibuat ke folder rumah, dan kemudian memanggil bash untuk menulis konten file:

PS C:\dev\temp> Set-Content ./hello.txt -Value "Hello, World!" -Encoding ASCII
PS C:\dev\temp> cat .\hello.txt
Hello, World!
PS C:\dev\temp> bash -c "cp /mnt/c/dev/temp/hello.txt ~/"
PS C:\dev\temp> bash -c "cat /mnt/c/dev/temp/hello.txt"
Hello, World!

HTH.

Richard Turner
sumber