本文总结了Bash和PowerShell中常见的目录操作命令。
Bash部分包括
cd导航、pwd查看路径、目录栈管理(pushd/popd)以及相对路径使用技巧。
PowerShell部分涵盖
Set-Location(cd)导航、Get-ChildItem(ls)查看内容、目录栈操作和特有的PSDrive功能。
两者都支持返回上级目录、主目录和目录历史管理,但PowerShell提供了更丰富的路径处理功能,如跨平台路径操作和访问注册表等特殊存储。
文章还对比了两者在路径分隔符、命令分隔符等方面的差异,帮助用户提高命令行工作效率。
Bash常见操作总结表
| 操作类型 | 命令/符号 | 说明 | 示例 |
|---|---|---|---|
| 目录导航 | cd .. |
返回上一级目录 | cd .. |
cd ../.. |
返回上两级目录 | cd ../.. |
|
cd - |
返回上一个工作目录 | cd - |
|
cd ~ 或 cd |
返回用户主目录 | cd ~ |
|
cd / |
返回根目录 | cd / |
|
| 目录查看 | pwd |
显示当前目录完整路径 | pwd |
ls |
列出当前目录内容 | ls -la |
|
| 路径相关 | pushd |
将目录保存到目录栈并切换 | pushd /path/to/dir |
popd |
从目录栈恢复上一个目录 | popd |
|
dirs |
显示目录栈内容 | dirs -v |
|
| 特殊路径 | . |
当前目录 | ./script.sh |
.. |
上级目录 | ../other-dir/file.txt |
常用组合操作
| 场景 | 命令组合 | 效果 |
|---|---|---|
| 快速返回上级目录并查看内容 | cd .. && ls |
返回上级并列出文件 |
| 进入深层目录后返回原处 | cd /very/long/path cd - |
快速回到原工作目录 |
| 临时访问其他目录并返回 | pushd /tmp # 执行操作 popd |
自动返回原目录 |
实用技巧
-
使用别名简化操作
bashalias ..='cd ..' alias ...='cd ../..'之后可直接用
..返回上级 -
目录栈管理
bashpushd /dir1 pushd /dir2 dirs -v # 查看栈 popd # 返回/dir1 popd # 返回原始目录 -
相对路径使用
bash# 从当前目录的上级目录访问文件 cat ../config/file.conf # 从上级目录执行脚本 ../scripts/start.sh -
环境变量
bash# 使用HOME变量 cd $HOME/Documents # 使用OLDPWD变量(存储上一个目录) echo $OLDPWD
这些操作是Bash日常使用中最基本且最频繁的目录导航命令,掌握后能显著提高命令行工作效率。
PowerShell常见操作总结表
| 操作类型 | 命令/别名 | 说明 | 示例 |
|---|---|---|---|
| 目录导航 | Set-Location .. 或 cd .. |
返回上一级目录 | cd .. |
Set-Location ../.. |
返回上两级目录 | cd ../.. |
|
Set-Location - 或 cd - |
返回上一个工作目录(PowerShell 5.1+) | cd - |
|
Set-Location ~ 或 cd ~ |
返回用户主目录 | cd ~ |
|
Set-Location \ 或 cd \ |
返回当前驱动器的根目录 | cd \ |
|
Set-Location / |
返回文件系统的根目录(跨平台) | cd / |
|
| 目录查看 | Get-Location 或 pwd |
显示当前目录路径 | pwd |
Get-Location -Stack |
显示目录栈内容 | Get-Location -Stack |
|
Get-ChildItem 或 ls、dir |
列出当前目录内容 | ls -Force |
|
| 目录栈操作 | Push-Location 或 pushd |
保存当前目录到栈并切换 | pushd C:\Windows |
Pop-Location 或 popd |
从栈恢复上一个目录 | popd |
|
| 驱动器操作 | Get-PSDrive |
显示所有PS驱动器 | Get-PSDrive |
Set-Location C: |
切换驱动器(Windows) | cd C: |
|
Set-Location Env: |
进入环境变量驱动器 | cd Env: |
|
| 路径操作 | Resolve-Path |
解析路径中的通配符 | Resolve-Path .\*.ps1 |
Split-Path |
获取路径的特定部分 | Split-Path -Parent .\test\file.txt |
|
Join-Path |
合并路径部分 | Join-Path C:\test "file.txt" |
常用组合操作
| 场景 | 命令组合 | 效果 |
|---|---|---|
| 返回上级并列出文件 | cd ..; ls |
PowerShell使用分号分隔命令 |
| 临时访问目录并返回 | pushd C:\Temp; Get-Process; popd |
自动化工作流 |
| 查看目录历史 | (Get-PSReadLineOption).HistorySavePath |
查看命令历史文件位置 |
| 快速访问特殊文件夹 | cd $HOME 或 cd $env:USERPROFILE |
使用环境变量 |
特殊文件夹快捷方式
| 快捷方式 | 对应路径 | 说明 |
|---|---|---|
$HOME |
用户主目录 | 跨平台兼容 |
$PWD |
当前目录 | 可在字符串中使用 |
$env:TEMP |
临时文件夹 | Windows临时目录 |
$PSHOME |
PowerShell安装目录 | PowerShell程序目录 |
[Environment]::GetFolderPath('Desktop') |
桌面路径 | .NET方法获取特殊文件夹 |
PowerShell特有功能
| 功能 | 命令/方法 | 说明 |
|---|---|---|
| 提供程序导航 | cd HKLM:\ |
进入注册表驱动器 |
cd Cert:\ |
进入证书存储 | |
cd Variable: |
进入变量驱动器 | |
| 位置历史 | (Get-PSReadlineOption).HistorySavePath |
获取历史文件路径 |
| 自动补全 | Tab 键 |
路径和命令补全 |
| 通配符搜索 | cd *test* |
使用通配符跳转目录 |
实用技巧
-
使用自定义函数简化操作
powershell
# 创建返回多级目录的函数 function .. { Set-Location .. } function ... { Set-Location ..\.. } function .... { Set-Location ..\..\.. } -
使用位置栈管理多个目录
powershell
pushd C:\Projects pushd D:\Data Get-Location -Stack # 查看栈内容 popd # 返回C:\Projects popd # 返回原始目录 -
路径操作示例
powershell
# 获取父目录 Split-Path -Parent "C:\Users\John\Documents\file.txt" # 组合路径 Join-Path "C:\Test" "subfolder\file.txt" # 解析相对路径为绝对路径 Resolve-Path ".\scripts\*.ps1" -
跨平台路径处理
powershell
# 跨平台兼容的路径操作 [System.IO.Path]::Combine("folder", "subfolder", "file.txt") [System.IO.Path]::GetDirectoryName("C:\test\file.txt") -
使用PSDrive访问不同数据存储
powershell
# 访问注册表 cd HKLM:\Software ls # 访问环境变量 cd Env: Get-ChildItem | Where-Object Name -like "*PATH*" # 访问证书存储 cd Cert:\CurrentUser\My
与Bash的主要区别
| 特性 | PowerShell | Bash |
|---|---|---|
| 路径分隔符 | \(Windows),/(跨平台) |
/ |
| 命令分隔符 | ; |
; 或 && |
| 当前目录表示 | .(相对),$PWD(变量) |
.,$PWD |
| 上级目录 | .. |
.. |
| 根目录 | \ 或 / |
/ |
| 主目录 | ~ 或 $HOME |
~ 或 $HOME |
PowerShell的目录操作虽然与Bash有相似之处,但提供了更丰富的功能,特别是通过PSDrive可以访问各种数据存储,这是其独特优势。