سؤال نظام ويندوز لينوكس - الوصول إلى الملفات خارج أوبونتو


لماذا ، عندما أقوم بإنشاء ملف من داخل Windows على سبيل المثال ، لا أستطيع رؤيتها تحت نظام لينكس الفرعي في نظام التشغيل Windows 10 (bash.exe)

يجب أن توضح لقطة الشاشة.

المجلد: تم إنشاء OMG من داخل مستكشف Windows. تم إنشاء المجلد OMGBash من خلال bash.exe لنظام Linux الفرعي

عندما يتم إنشاء مجلد أو ملف خارج bash.exe لا يمكنني رؤيته مطلقًا ، بغض النظر عن الأذونات والملكية.

لإظهار المعلومات التي اضطررت إلى استخدامها Cygwin لإظهار أذونات الملف ، قمت أيضًا بتغيير الأذونات لمعرفة ما إذا كان المجلد سيظهر. (نوافذ الأوامر في الأسفل)

لقطة شاشة تعرض مجلد ، bash.exe وأذونات Cygwin:

enter image description here

أحاول نقل جميع مخطوطات Cygwin إلى نظام Linux الفرعي ، لكن أنا لا أتخيل إعادة إنشاء كل ملف ، ثم الحاجة إلى نسخ الماضي وباش باستخدام باش ، ثم إعادة التنسيق ثم استخدام Dos2unix (طويلة جدا متعرج).

تم العثور على هذا على GitHub لنظام Linux الفرعي: 

النسخ مباشرة في نظام لينكس الفرعي من ويندوز ليست كذلك   مدعومة ، وفقا للمناقشة على تذاكر أخرى. هناك   دليل تحت AppData في مكان ما (ننسى أين) الذي يبدو   تحتوي على ملفات لنظام ملفات WSL. ولكن إذا وضعت ملفات جديدة   هناك ، أو تعديل الملفات الموجودة هناك ، لا تنعكس تغييراتك   بشكل صحيح داخل WSL.

أفضل تخميني هو أن Linux بحاجة إلى تخزين بيانات وصفية مختلفة (و   مزيد من المعلومات التخزين المؤقت ، وما إلى ذلك ، لأن نموذج التخزين المؤقت للقرص هو أيضا   مختلفة) عن ملفاتها من ويندوز ، وهذا هو   تنفذ حاليا عن طريق تخزين النسخة الرئيسية من هيكل   نظام ملفات Linux في قاعدة بيانات من نوع ما ، ومجرد استخدام   نظام ملفات Windows كمخزن ملائم لـ BLOB لقاعدة البيانات تلك.

إذا كنت بحاجة فعلًا إلى إجراء ذلك ، فستكون إحدى الحلول هي كتابة   drag'n'drop script. أو somesuch الذي لا bash.exe - c "mv٪ 1   / home / $ USER / ". (يجب عليك القيام ببعض الأعمال الذكية مع sed و tr ،   على الأرجح ، لترجمة٪ 1 إلى مسار WSL صالح.)

بدلاً من ذلك - يمكنك وضع ملفاتك في دليل Windows ،   ضمن لغة WSL ، نفذ "cd ~؛ ln -s / mnt / c / path / to / my / files" لجعلها   يبدو أنك في هومل WSL الخاص بك؟


66
2018-06-03 09:32


الأصل


هل من الممكن تركيب النوافذ HDD تحت بيئة Linux؟ وبهذه الطريقة يجب أن تظهر جميع الملفات في الوقت الحقيقي ... (أو حتى فقط دليل المنزل Cygwin) - Hastur
فكرة رائعة ، لكن للأسف الملفات غير مرئية. الطريقة التي حولها ، هي نسخ الملفات من دليل Windows إلى Linux System Sub Directory عبر Bash.exe القيام بذلك بالطريقة التي تحتاجها cp -r --no-preserve=all  لإسقاط الأذونات السابقة. ومع ذلك ، إذا كنت ترغب في إجراء أي تغييرات ثقيلة ، فلا يمكنك استخدام تطبيق windows لتحرير الملف في LinuxSubSystem ، يجب عليك تحريره ، في دليل Windows ثم نسخه. الآن أنا أعرف هذا ، عملي ، لكني كنت تحت الانطباع بأن نظام لينكس الفرعي كان أكثر محلية / مدمجة في النوافذ من نظام التشغيل المعزول - Dave Hamilton
يمكنك متابعة تقدم هذه المشكلة (التعامل مع الملفات بين Windows و WLS) في github.com/Microsoft/BashOnWindows/issues/1051 - Gaia
إذا قمت بتثبيت توزيعة من متجر Windows ، فسيكون نظام الملفات في %LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs. - Ian Kemp


الأجوبة:


لست متأكدًا مما إذا كنت أساء فهم سؤالك ، ولكن من المفترض أن يكون لديك bash (النافذة اليمنى العلوية) إمكانية الوصول إلى الأقراص المستندة إلى Windows تحت /mnt. على سبيل المثال ، على جهازي /mnt/c/Users/Scott/Desktop هو سطح مكتب Windows الخاص بي ويمكنني قراءة / كتابة الملفات من vi على سبيل المثال. لا أعتقد أن العكس صحيح حتى الآن. لا أعتقد أنه يمكنك استكشاف عالم bash من مستكشف Windows.

ما أقوم به كمطور هو استضافة المشاريع على d: وتوجيه الأدوات المستندة إلى linux إلى ذلك /mnt/d/projects/someproject/ مجلد.

تأكد من قيامك بتحديث Windows الخاص بك بشكل دوري حيث يبدو أنه يقوم بإصلاح الكثير من المشكلات مع كل إصدار ، خاصةً حول الارتباطات sym-cross وعبر حدود FS بين Linux / Windows.


67
2018-06-03 23:40



أنت على حق ، أعتقد أنني قفزت البندقية قليلا. بينما يستطيع Bash الوصول إلى ملفات Windows ، لا يمكن لـ Windows نسخ الملفات إلى دليل Linux Sub System. (يمكن أن تنسخ بعد ذلك ، لكن باش لا يمكن رؤيتها لأنها تحافظ على أذونات الملفات) عندما حصلت على تثبيت bash ، على الرغم من أن الشيء الأكثر منطقية هو نقل مشاريعي من بيئة لينكس إلى أخرى (محاولة لنزول قبالة Cwygin) ، و هذا الذي بدأني في طريق الصداع. لقد قمت بتكوين Bashrc الآن ليحصل على دليل البدء لبيئة Linux السابقة الخاصة بي الآن والعمل من هناك. شكرا لردكم. - Dave Hamilton
انتظر ، كيف تحصل / mnt / d لتظهر؟ على سبيل المثال ، عندما أقوم بتوصيل هاتف عبر MTP فإنه يظهر تحت مسار مثل "هذا الكمبيوتر \ اسم الهاتف" ولكن لا يوجد حرف محرك أقراص مقترن به. - Michael
تعمل Symlinks إذا لم يكن لديك شرطة مائلة. أيضا ، تحتاج إلى أن يكون لديك ملفات على جانب Windows من نظام الملفات للقيام بأشياء مثل تشغيل مشاريع Django محليًا والوصول إليها في المتصفح - Zags
ولكن لا يتم تحديث ملفات linux عندما أقوم بتعديل ملفات windows؟!؟! - user2230470


@ أجوبة scottt732 جميل.

مجرد نصيحة للمطورين الذين يعملون في Windows ويريدون الوصول إلى هذه الملفات في نظام Linux الدقيق بسرعة. يمكنك استخدام روابط رمزية.

على سبيل المثال إذا كنت تعمل على مشروع في d:/projects/web-project، يمكنك إنشاء رابط رمزي في الموقع /var/www/web-project وجميع الملفات التي تقوم بتغييرها في ويندوز ستكون متاحة بسهولة ليتم الوصول إليها في لينكس باش.

لهذا سوف تستفيد ln الأمر هكذا

ln -s  /mnt/d/projects/web-project  /var/www/web-project

في السطر أعلاه /mnt/d كان من المفترض أن يكون محرك الأقراص الخاص بك على النوافذ. قم بإعداد مضيف Apache الظاهري لهذا المسار وأنت على استعداد للذهاب.


13
2018-04-07 14:30



انها لا تزامن فعلا ... ما لم يكن لدي لإعادة تشغيل الخادم في كل مرة؟ - user2230470
Anthony ارتباطها الرمزي ، لذلك لا يجب عليك إعادة تشغيل الخادم لهذا الغرض. في الواقع هذه ليست متزامنة ، لأنها تشير فقط إلى هذا المجلد / المسار. - Riz
أنا أحسب هذه المسألة. كان ذلك لأن ملف CSS يحتوي على شرطة في الاسم مثل ، على سبيل المثال ، css-file.css. لقد نشرت عن هذه القضية هنا. - user2230470


نحن نوصي بذلك لا تقم بنسخ / إنشاء / تحديث ملفات Linux باستخدام تطبيقات Windows.

بدلاً من ذلك ، قم بتخزين الملفات في نظام ملفات Windows (على سبيل المثال ، c:\dev\project) أنك تريد تعديل الملفات باستخدام أدوات Windows و / أو الإنشاء / الاختبار / التشغيل باستخدام أدوات / نظام تشغيل / أساسيات Linux (على سبيل المثال عبر /mnt/c/dev/project).

في السيناريو المحدد ، إذا كنت تريد نسخ ملفات Cygwin إلى Bash ، فافتح Bash ونسخ الملفات من مجلد Cygwin على C: إلى ~/، مثله: cp /mnt/c/Users/dave/Documents/Cygwin/* ~/)

HTH.


8
2018-04-09 19:50





كان لي حاجة مماثلة لنسخ الملفات بين WSL و win10. انتهى الأمر تمكين sshd على تثبيت أوبونتو حتى أتمكن من ssh في لينكس من win10. ثم استخدم winscp لنسخ الملفات ذهابًا وإيابًا. ليس الأمثل ، لكني لا أنسخ الملفات كثيرًا جدًا. حاولت العثور على المشاركة التي استخدمتها لتمكين sshd ولكن لا يمكنني تحديد موقعها.


0
2017-08-03 07:00