Không chính xác trong cùng một thời trang mà tôi nhận thức được. Một lựa chọn là sử dụng Pushd thay vì cd. Sau đó, popd sẽ đưa bạn trở lại.
Bạn cũng có thể thay đổi hồ sơ của mình để bất cứ khi nào một dấu nhắc mới xuất hiện (về cơ bản bất cứ khi nào bạn nhấn enter). Nó sẽ nhận được PWD và so sánh với cái trước đó. Nếu chúng khác nhau, sau đó đặt giá trị đó lên một ngăn xếp. Sau đó, bạn sẽ bao gồm một chức năng khác trong hồ sơ của bạn được gọi là một cái gì đó như cdb sẽ bật mục cuối cùng ra khỏi ngăn xếp và cd vào nó.
Điều này nghe có vẻ vui nên tôi đã đưa ra một giải pháp. Đặt tất cả mã này vào hồ sơ của bạn ( about_Profiles ).
[System.Collections.Stack]$GLOBAL:dirStack = @()
$GLOBAL:oldDir = ''
$GLOBAL:addToStack = $true
function prompt
{
Write-Host "PS $(get-location)>" -NoNewLine -foregroundcolor Magenta
$GLOBAL:nowPath = (Get-Location).Path
if(($nowPath -ne $oldDir) -AND $GLOBAL:addToStack){
$GLOBAL:dirStack.Push($oldDir)
$GLOBAL:oldDir = $nowPath
}
$GLOBAL:AddToStack = $true
return ' '
}
function BackOneDir{
$lastDir = $GLOBAL:dirStack.Pop()
$GLOBAL:addToStack = $false
cd $lastDir
}
Set-Alias bd BackOneDir
Bây giờ bạn có thể cd giống như bình thường và bd sẽ đưa bạn trở lại vị trí trong lịch sử vị trí của bạn.
pushd
để điều hướng đến một thư mục mới, bạn có thểpopd
quay lại thư mục trước đó. Điều này hoạt động trong Bash, PowerShell và thậm chí dòng lệnh Windows cũ.