Salin File dari Windows ke Subsistem Ubuntu [ditutup]

97

Saya telah mengaktifkan mode pengembang dan menginstal Bash on Ubuntu on Windows.

Direktori home saya dapat ditemukan di bawah %localappdata%\Lxss\home\<ubuntu.username>\, saya telah membuat sub-direktori bernama Pictures sedemikian rupa sehingga path lengkapnya seharusnya

di windows: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

pada pesta: /home/<ubuntu.username>/Pictures

jika saya membuat file dari bash menggunakan perintah touch hello.txtsaya dapat dengan bebas melihat file ini di UI windows dan menyalinnya ke Desktop saya. Namun, jika saya membuat file teks baru dari UI Windows dan menyimpannya C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, meskipun saya memulai ulang bash atau windows, file tersebut tidak terlihat saat saya melakukannya.ls -l .

Mengapa bash tidak dapat melihat file yang dibuat dari sisi Windows di direktori rumahnya sendiri?

EDIT Menggunakan /mnt/cbukanlah solusi, saya mencoba memahami mengapa ia tidak melihat file-file itu dan jika ada solusi untuk itu sehingga akan dapat melihat file yang dibuat UI, daripada mencoba menggunakan terminal untuk menyalin- tempel atau pindahkan file.

JordanGS
sumber
2
Menarik! Dugaan saya - dan ini hanya tebakan - adalah bahwa subsistem Linux melacak file-nya sendiri dan tidak pernah melihat apakah ada file lain yang telah ditambahkan. Itu akan masuk akal, karena jika tidak, akan sulit memberikan semantik sistem file virtual UNIX untuk hal-hal seperti menghapus file dan sensitivitas huruf. Saya menduga Anda akan menemukan bahwa jika Anda membuat hello.txtdan HELLO.TXTdari Bash, salah satu file akan menggunakan nama yang berbeda saat Anda melihatnya di Windows.
Harry Johnston
Stack Overflow adalah situs untuk pertanyaan pemrograman dan pengembangan. Pertanyaan ini tampaknya di luar topik karena ini bukan tentang pemrograman atau pengembangan. Lihat Topik apa yang dapat saya tanyakan di sini di Pusat Bantuan. Mungkin Super User atau Unix & Linux Stack Exchange akan menjadi tempat yang lebih baik untuk bertanya. Lihat juga Di mana saya memposting pertanyaan tentang Dev Ops?
jww
Seperti yang seharusnya @HarryJohnston, namanya berbeda. Panjang dan pendek. Tetapi hanya dalam kasus ini, bahkan yang pendek (!)
Serhii Kheilyk
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena terkait dengan komunitas ask-ubuntu.
OmG
2
@jpaugh aku tahu. Tapi, pertanyaan ini dibenarkan untuk menanyakan keadaan Ubuntu dan bukan di luar topik.
OmG

Jawaban:

143

Anda harus dapat mengakses sistem windows Anda di bawah /mntdirektori. Misalnya di dalam bash, gunakan ini untuk masuk ke direktori gambar Anda:

cd /mnt/c/Users/<ubuntu.username>/Pictures

Semoga ini membantu!

zoecarver
sumber
Saya yakin Anda salah paham. Saya memiliki JPG di desktop saya, saya menyalinnya dengan UI ke direktori subsistem bash. Saya mencoba memahami mengapa bash tidak dapat melihat gambar-gambar itu ketika mereka berada di direktori home-nya. Ini adalah perilaku dasar cygwin, seret dan lepas atau salin dan tempel file tanpa bergantung pada perintah linux untuk melakukan pekerjaan itu.
JordanGS
Anda mungkin berada di folder yang salah.
zoecarver
Subsistem Linux tidak memiliki kriteria desain yang sama dengan Cygwin. Anda tidak bisa mengharapkan mereka berperilaku serupa.
Harry Johnston
itu berhasil untuk saya, meskipun ubuntu.usernametidak perlu nama pengguna untuk windows .. setidaknya tidak bagi saya;)
user2804070
1
Aku mencintaimu untuk ini.
Gubatron
53

Anda sebaiknya hanya mengakses sistem file Linux (yang terletak di folder lxss) dari dalam WSL ; JANGAN membuat / memodifikasi file apa pun di folder lxss di Windows - ini berbahaya dan WSL tidak akan melihat file-file ini.

File dapat dibagi antara WSL dan Windows; letakkan file di luar folder lxss. Anda dapat mengaksesnya melalui drvFS ( /mnt) seperti/mnt/c/Users/yourusername/files dalam WSL. File-file ini tetap tersinkronisasi antara WSL dan Windows.

Untuk detail dan alasannya, lihat: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

reker
sumber
Lihat juga Dukungan Sistem File WSL .
Harry Johnston
1
Dalam Dukungan Sistem File WSL ini menjelaskan mengapa perilaku itu terjadi: file "terjemahan" dilakukan hanya di subsistem lsxx (di sisi linux).
Chris Buck
Pada VM linux, saya dapat menggunakan SFTP untuk mentransfer file, apa yang saya gunakan untuk mentransfer file dengan BENAR dari Windows ke subsistem linux? ini tidak memberikan solusi.
Ambroise Rabier
1
@AmbroiseRabier Di versi terbaru WSL, gunakan SFTP, file tar, atau protokol 9p terintegrasi.
reker