Change to user folder from the Command Prompt or PowerShell?
There's nothing like ~
in Windows cmd, but you can use %USERPROFILE%
or %HOMEDRIVE%%HOMEPATH%
like $HOME
in *nix. See
- Recognized Environment Variables
- Windows Environment Variables
However in PowerShell you can use ~
like on Linux. cd ~
will work as expected or you can shorten it to cd
in PowerShell Core like how you can on Linux
The tilde character (~) is shorthand notation for the current user's home folder. This example shows
Resolve-Path
returning the fully qualified path value.Resolve-Path ~ Path ---- C:\Users\User01
Resolve-Path
PS C:\> Push-Location ~ -StackName Stack2 PS C:\Users\User01> Pop-Location -StackName Stack2 PS C:\>
The first command pushes the current location onto a new stack named Stack2, and then changes the current location to the home directory, represented in the command by the tilde symbol (
~
), which when used on a FileSystem provider drives is equivalent to$HOME
and$env:USERPROFILE
.Push-Location
In PowerShell Core cd
alone without a location behaves exactly like on Linux where cd
and cd ~
both changes to the home directory
-Path
Specify the path of a new working location. If no path is provided,
Set-Location
defaults to the current user's home directory. When wildcards are used, the cmdlet chooses the first path that matches the wildcard pattern.Set-Location
The ~
(Tilde) is a built in shortcut that autocompletes to the users 'Home' folder. Normally the home folder will be found under /home/ however it can infact be in almost any location on the system (including on network drives). This is defined in /etc/passwd
.
So cd ~/Downloads
is actually running the command cd /home/<username>/Downloads