ทำไมเมื่อฉันสร้างไฟล์จากใน Windows ฉันจะไม่เห็นมันภายใต้ระบบย่อย Linux ใน Windows 10 (bash.exe)
ภาพหน้าจอควรอธิบาย
โฟลเดอร์: OMG ถูกสร้างขึ้นจากภายใน Windows Explorer Folder OMGBash ถูกสร้างจากระบบย่อยของ Linux bash.exe
เมื่อสร้างโฟลเดอร์หรือไฟล์นอก bash.exe ฉันไม่สามารถมองเห็นได้ไม่ว่าจะมีการอนุญาตหรือการเป็นเจ้าของ
เพื่อแสดงข้อมูลที่ฉันต้องใช้ Cygwin เพื่อแสดงการอนุญาตของไฟล์ฉันได้เปลี่ยนสิทธิ์เพื่อดูว่าโฟลเดอร์จะปรากฏขึ้นหรือไม่ (หน้าต่างคำสั่งสองหน้าต่างที่ด้านล่าง)
ภาพหน้าจอแสดงสิทธิ์ของโฟลเดอร์ bash.exe และ Cygwin:
ฉันกำลังพยายามย้ายสคริปต์ Cygwin ทั้งหมดไปยังระบบย่อย Linux แต่ฉันไม่อยากสร้างไฟล์ใหม่ซ้ำอีกทั้งต้องคัดลอกแล้วใช้ bash ก่อนแล้วจึงทำการฟอร์แมตใหม่อีกครั้งโดยใช้ Dos2unix
พบสิ่งนี้ใน GitHub สำหรับระบบย่อย Linux:
การคัดลอกโดยตรงไปยังระบบย่อย Linux จาก Windows ไม่ได้รับการสนับสนุน มีไดเรกทอรีภายใต้ AppData อยู่ที่ไหนสักแห่ง (ฉันลืมที่) ที่มีไฟล์สำหรับระบบไฟล์ WSL แต่ถ้าคุณใส่ไฟล์ใหม่ที่นั่นหรือแก้ไขไฟล์ที่มีอยู่ที่นั่นการเปลี่ยนแปลงของคุณจะไม่ถูกต้องภายใน WSL
สิ่งที่ฉันคาดเดาได้ดีที่สุดคือ Linux ต้องเก็บข้อมูลเมตาที่ต่างกัน (และข้อมูลแคชเพิ่มเติมเป็นต้นเนื่องจากรูปแบบการกำหนดบัฟเฟอร์ของดิสก์นั้นแตกต่างกัน) เกี่ยวกับไฟล์ที่มากกว่า Windows และปัจจุบันนี้ถูกนำไปใช้โดยการจัดเก็บสำเนาต้นแบบของโครงสร้าง ของระบบไฟล์ Linux ในฐานข้อมูลบางประเภทและเพียงใช้ระบบไฟล์ Windows เป็น BLOB-store ที่สะดวกสำหรับฐานข้อมูลนั้น
หากคุณต้องการทำสิ่งนี้จริงๆวิธีแก้ปัญหาคือการเขียนสคริปต์ drag'n'drop .bat หรือ somesuch ที่ bash.exe -c "mv% 1 / home / $ USER /" (คุณจะต้องทำงานอย่างชาญฉลาดกับ sed และ tr เพื่อแปล% 1 เป็นเส้นทาง WSL ที่ถูกต้อง)
อีกวิธีหนึ่ง - คุณสามารถวางไฟล์ของคุณในไดเรกทอรี Windows และใน WSL ให้ทำ "cd ~; ln -s / mnt / c / path / to / my / files" เพื่อให้ปรากฏใน homedir WSL ของคุณหรือไม่
cp -r --no-preserve=all
การปล่อยสิทธิ์ก่อนหน้านี้ อย่างไรก็ตามหากคุณต้องการเปลี่ยนแปลงอย่างหนักคุณไม่สามารถใช้แอพพลิเคชั่น windows เพื่อแก้ไขไฟล์ใน LinuxSubSystem ได้คุณต้องแก้ไขไฟล์ในไดเรกทอรีของ windows แล้วคัดลอกมา ตอนนี้ฉันรู้ว่ามันใช้งานได้ แต่ฉันอยู่ภายใต้การแสดงผลระบบย่อย Linux เป็นพื้นเมือง / รวมเข้ากับ windows มากกว่าระบบปฏิบัติการที่แยก
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
ระบบแฟ้มจะอยู่ที่