Unix'i Windows'ta Bash'te çalışan yollar gibi nasıl bulabilirim?


2

Aşina olmayanlar için msys2 , Windows için bir * nix program limanıdır. Orada şöyle şeyler yapabilirim:

$ some-prog ~/.profile
$ some-prog /c/Windows/System32/drivers/etc/hosts

some-prog Genel Windows programları veya msys2'deki derleyicilerle derlenmiş programlar olmalarına bakılmaksızın herhangi bir ikili dosya olabilir. Yollar şeffaf bir şekilde çevrilecekti, böylece msys2'nin bir parçası olmayan programlarla çalışırken bile çok * nix-ish vibe veriyordu.

Şu anda, WSL / "Windows'ta Bash" i (Creators Update) kontrol ediyorum ve bir sorunum var gibi görünüyor.

Bir Linux programı için her şey iyi çalışıyor:

~ $ nano ~/.

Beklendiği gibi, nano içeriğiyle açılır ~/.profile.

Yine de bir Windows programını çağırmaya çalışırken, bir hata var:

~ $ "/mnt/c/Program Files/Sublime Text 3/subl.exe" ~/.profile
Unable to translate current working directory. Using C:\Users\Admin

Ve açılır C:\home\<wsl_username>\.profile Sublime Text’de, asıl dosya %localappdata%\lxss\home\<wsl_username>\.profile.

Windows yolları da daha iyi değil:

~ $ "/mnt/c/Program Files/Sublime Text 3/subl.exe" /mnt/c/Windows/System32/drivers/etc/hosts
Unable to translate current working directory. Using C:\Users\Admin

Bu açılır C:\mnt\c\Windows\System32\drivers\etc\hosts, yine yanlış yol.

WSL'de doğru msys2 benzeri yol entegrasyonuna sahip olmamın bir yolu var mı?


1
@Seth Sorumu düzenledim.
user2064000

Yanıtlar:


1

Çizgileri boyunca bir şey gerekir cygpath Cygwin'den maalesef henüz WSL'ye ait bir liman yok ... O zaman kaçabilirsiniz:

cd /
notepad.exe $(cygpath /etc/hosts)

Şimdilik, en yakın yerine cygpath şu anda reddit yayınlanan küçük bir programdır win2lin.exe .

Başka bir referans için, Atom'un (metin editörü) en yeni sürümlerine dahil ettiği kabuk betiğini görebilirsiniz, atom.sh .

Ya da nodejs kullanmak istiyorsanız ve kullanıcı adınızı kodlarken sakıncası yoksa, şunu yazabilirsiniz:

var p = require("path")
var path = "C:\\Users\\me\\Desktop"
var sepa = path.split(p.win32.sep)
var newS = [].concat([sepa[0].toLowerCase()], sepa.slice(1))
var newP = "/mnt/" + p.posix.join.apply(p.posix, newS).replace(":", "")
// newP == "/mnt/c/Users/me/Desktop

Şimdilik, en kolay geçici çözüm kullanmak istediğiniz windows binary'in yolunuzda olduğundan emin olmaktır (yolunuzu temiz tutmak için .exe dosyasını da kullanabilirsiniz) ve sonra cd / mnt / c / PathToFileYouWantToEdit programınızı şöyle çalıştırın: atom.exe myExampleFile.

cd /mnt/c/Some/Path
notepad.exe SomeFile

Amacınız WSL’de bulunan ancak dışarıdan erişilemeyen dosyaları (WSL’nin / mnt dışındaki her şey) düzenlemekse, en kolay yol, WSL’nin içine / w erişimine izin veren bir WebDAV sunucusu kurmak ve bu WebDAV sunucusunu bir windows sürücü harfi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.