Linux'un Windows'taki “~” (tilde) eşdeğeri nedir?


72

Linux'ta, ~sonra tilde ( ) karakterini girerek kullanıcının evine gidebiliriz cd:

cd ~

Aynı Windows'da nasıl yapılır?

Her seferinde şunu yazmam gerekiyor:

cd C:\Document and Settings\freewind

Bu çok sıkıcı.


2
Cygwin kullanmayı düşünün?
Paul R

8
aslında, '~' çoğu Linux kabuğunun altındaki 'cd' için varsayılandır, bu yüzden sadece 'cd' homedir


4
Cevap basitçe "cd ~" .. anlamına gelir, aynı komutu Windows'ta da kullanabilirsiniz. Ancak, bu komutu CMD'de denememelisiniz, çünkü şimdi tarihli ve Microsoft tarafından kaldırılmıştır. "Windows PowerShell" kullanın ve aynı komut düzgün çalışacaktır.
Apple II

3
PowerShell Win7 + ile birlikte gemi
Isaac Dontje Lindell

Yanıtlar:


43

cd /d "%HOMEDRIVE%%HOMEPATH%" yapardım - ama bir gelişme olarak değerlendirirseniz emin değilim.

Ayrıca yukarıdaki komut için bir diğer ad tanımlayabilirsiniz:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

Bundan sonra, basitçe cdhome.


4
@Freewind: Varsayılan Windows kabuğunu sevmeniz gerekir.
Jon

10
@ abatishchev: Güzel soru. SF hakkındaki bu soru % USERPROFILE% 'nin tercih edildiğini gösteriyor gibi görünmektedir.
Jon

3
Cdhome yerine cd ~ 'yi makro adı olarak da kullanabilirsiniz.
jftuga

3
@ abatishchev: Windows NT hesaplarında, "profil dizini" nden ayrı bir "ev dizini" yolu eklenmiş olabilir. Profil ayarlarınızı (Kayıt Defteri), uygulama verilerini vb. Tutar. Öte yandan, ev dizini kendi dosyalarınız içindir - bir program ilk kez "Aç / Kaydet" iletişim kutusunu görüntülediğinde, giriş dizininde başlayacaktır. (Windows 95/98 biraz farklı bir şekilde kullandı; özelliklerini hatırlayamıyor.) Bu, dosyaları bir ağ paylaşımına depolamak, ancak profili yerel tutmak için Active Directory ortamlarında kullanışlıdır.
yerçekimi

2
@jftuga: Veya hatta ~.
Grawity

62

Sen kullanabilirsiniz cd /d %USERPROFILE%sen cmd kullanırsanız.

veya cd ~PowerShell kullanıyorsanız kullanabilirsiniz.


4
+1, ayrıca değişkenin çevresine tırnak işaretleri de ekler (belki c:\documents and settings\...alıntı yapılmazsa boşluklar onu kırar)
Jon

7
@Jon: cdbir istisnadır. Her zaman tek bir argüman aldığından alıntı yapmak gerekli değildir. (Windows'ta, program ve yerleşik ins kendi komut satırı kendilerini ayrıştırmak gerekir, kabuk bunu yapmaz.) Her zaman yollarını alıntı olduğunu ancak, iyi bir uygulama.
yerçekimi

1
@barlop: genellikle CommandLineToArgvW () ; CLR / MinGW / Cygwin çalışma süreleri, main () işlevini çağırmadan önce otomatik olarak kendi eşdeğerlerini kullanır. Bununla birlikte, bazı programlarda tamamen sıfırdan, örneğin cmd.exekendisi ve tuhaflığı gibi yazılmış ayrıştırıcıları vardır /c.
Gravity

1
@ barlop: Verilen komutun bir parçası olarak tırnak (veya yönlendirme) kullanmaya çalışıyorsanız. Öyle mi /c "C:\foo bar\baz" "my file.txt"yoksa /c "\"C:\foo bar\baz\" \"my file.txt\""yoksa /c ""C:\foo bar\baz" "my file.txt""? Daha da kötüsü, ayrıştırmanın /sdaha önce belirtilmiş olup olmamasına , özel karakterlerin varlığına, çalıştırılabilir olarak adlandırılmış olmasına C:\foo bar\bazya da sadece C:\foo...
grawity

1
@TheLQ Bir toplu iş komut dosyası daha da kolaydır. Tek bir karakter yazarak aynı sonucu elde edebilirim. Açıklama için aşağıdaki cevaba bakınız.
weberc2

13

Bir olasılık, substkomutu komut isteminden kullanmaktır:

subst z: C:\Document and Settings\freewind

Ne zaman Z: kullanıyorsanız, kullanıcı klasörünüze bakıyor olacaksınız.

Dezavantajı, her giriş yaptığınızda çalıştırmanız gerektiğidir. Bir toplu iş dosyası kullandım ve sadece başlangıç ​​klasörüme koydum, ancak bunun için daha zarif çözümler var.

Bunun yararı, bir doskey takma adının aksine, yalnızca komut isteminde dizinleri değiştirirken değil, evrensel olarak (windows explorer, göz atma iletişim kutusu vb.) Çalışmasıdır. "Masaüstü" yerine, en üst düzeyde sürücü harfleri olan eski göz atma iletişim kutularına sahip eski programlar için özellikle yararlıdır.


Bir sürücüyü haritalandırabilir ve oturum açtıktan sonra otomatik olarak yeniden eşlenmesini sağlayabilirsiniz.
Subst

1
@ LưuVĩnhPhúc Tamamen mantıklı olmayabilir, ancak gerçekten kullanmak zorunda olmadığım sürece Windows ağının bir şeyleri paylaşmamaya meyilliyim. Performans ve güvenilirliğin tahmin edilemez olduğunu hissediyorum. Elbette, bir alternatifiniz varsa, daha iyisi, bunu yapmanın bir yolu varsa, lütfen herkesin yararı için kendi cevabını gönderin :)
ay.

6

Bunu yapabilirsiniz:

cd %homepath%

5
Farklı bir sürücü E:kullanıyorsanız bu durum bozulacaktır - örneğin , harikasınız ve eviniz açıkC:
Piskvor

4

~.batİçeren denilen bir toplu iş dosyası oluşturabilirsiniz.

@echo off
cd /d %USERPROFILE%

Ve onu PATH değişkeninize ekleyin (Başlat -> ["Bilgisayar" üzerine sağ tıklayın] -> Özellikler -> "Gelişmiş Sistem Ayarları" [sol sütunda] -> "Ortam Değişkenleri"

Buradan, PATH değişkeninizi ~.batdosyanızı içeren klasörü içerecek şekilde düzenleyin. (Bu, komut dosyasını her yerden, yalnızca dosya adını kullanarak çağırmanıza izin verir - dosyanın mutlak yolunu değil)

Ayrıca, PATHEXTortam değişkeninizin bir .BATyerde bulunduğundan emin olun (bu, ~bunun yerine yazmanıza olanak sağlar ~.bat).

Kullanmanız gerektiğinde ~, komut istemine girmeniz yeterlidir . Bu çözüm kalıcıdır - bir kabuğunu her başlatışında ayarlamak zorunda kalmayacaksınız ve kayıt defterini kesmek zorunda kalmayacaksınız.


2

Ne yazık ki, mükemmel bir çözümden habersizim ama birkaç tane sahte seçenek var:

Seçenek 1: ~ ayarını doskey ile bir komut diğer adı olarak ayarlayın

doskey ~=cd /d %USERPROFILE%

Bu, basitçe yazmanızı ~ve homedir'inize chdir etmenizi sağlar.

C:\>~
C:\Users\a>

Açıkçası, bu eve dönmek için kullanılan tuş vuruşlarının sayısını kısaltır (Linux ile karşılaştırıldığında bile), ancak daha az sağlamdır çünkü onu başka bir yolun parçası olarak kullanamazsınız ya da sadece cd'lerin bulunduğu evin ötesinde çok fazla şey yapamazsınız.

Seçenek 2: ~ değişken olarak ayarlayın

Başka bir seçenek, daha sağlam bir seçenek istiyorsanız, bir var ayarlamaktır:

set ~="%USERPROFILE%"

ancak bunu kullanmak şöyle olacaktır:

E:\>cd /d %~%
C:\Users\a>

Aynı zamanda çoğu yola da enjekte edilebilir ve sizi eve dönüşle sınırlamaz.

Her iki seçenek de aynı anda

Ayrıca, her iki yöntemi de aynı anda uygulayabilirsiniz. Etrafında% varsa, değişken kullanacaktır - aksi halde ~komut olarak kullanılır.

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

Bir diğer ipucu (biraz ilgili):

Bu, bir şirket makinesinde, en azından ev bilgisayarınızda, ek tuş vuruşlarından tasarruf etmek için kabul edilebilir olma olasılığının düşük olması olasılığını düşürür, %USERPROFILE%dir, basit bir isim yapmak için kötü bir fikir değildir . Yukarıdaki örneklerimden görebileceğiniz gibi, benim kullanıcı dir: C:\Users\a- Ben her zaman 'aplocher' veya 'adamp' kullanıyordum ve tek bir harfle değiştirdiğimde, büyülüydü.


1

Powershell'de %variable%sözdizimi çalışmıyor. Bunu yapabilirsiniz :

cd $env:USERPROFILE

2
cd ~PowerShell'de kullanabilirsiniz .
wjandrea,

0

PowerShell'i kullanarak, kullanıcı adınızı bilmeniz ve dosya dizini izinleri vermeniz şartıyla, dizinlerden herhangi bir yere gitmek için aşağıdaki yöntemi deneyebilirsiniz.

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

PowerShell'de (64bit) aşağıdaki örneğe bakın. Bunu bir Windows 7 Pro 64bit kutusunda test ettim.

Windows 7 Pro 64 Bit'te Linux Lilde eşdeğeri

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.