野声

Hey, 野声!

谁有天大力气可以拎着自己飞呀
twitter
github

一個非常方便的命令:cdtmp

很久很久以前,在觀看 sorrycc 的視頻時,發現他使用了一個非常巧妙的命令:cdtmp,執行該命令後,shell 將跳轉到 /tmp/sorrycc-xxxxxx 文件夾下,覺得非常好用。

自己也使用了相當長的時間,真的非常好用,有很多場景都需要使用:

想要寫一個驗證想法的小案例,或者驗證一下某個函數的用途,或者克隆一下某個倉庫查看相關內容。直接使用 cdtmp 打開一個臨時文件夾,在裡面直接做你想做的事情,而且完全不需要擔心這些文件後續的清理問題,對於 Windows 來說,使用清理軟件清理垃圾時一般都會刪除臨時文件,Linux 下也有相應的清除 tmp 目錄的邏輯和方法。

簡單介紹一下這個命令,給出 zsh 中的實現以及一個 Windows 下 PowerShell 中具有相同功能的函數。

命令的作用就是:在系統的臨時目錄創建一個文件夾然後跳轉過去。

zsh#

sorrycc 提到的 cdtmp

cdtmp,進入到一個隨機創建的臨時目錄,簡單好用,http://frantic.im/cdtmp
-- https://github.com/sorrycc/zaobao/issues/2

原文 中給出了 zsh 中的實現的鏈接。

將下面這行代碼添加到你的 .zshrc 文件即可:

alias cdtmp='cd `mktemp -d /tmp/artin-XXXXXX`'

這條命令會在系統臨時目錄下創建一個名為 artin-XXXXXX 的文件夾,然後跳轉過去。

PowerShell#

我使用的是 PowerShell Core 7,如果你無法使用的話可以自己改改。

在 PowerShell 中單靠 Set-Alias 就無法實現這樣的效果了(或者實現比較複雜),但可以寫成一個函數,也非常簡單,可以直接在 PowerShell 中執行。

不過 PowerShell 只有 New-TemporaryFile 這個方法,不能直接通過一個命令創建文件夾。

所以我們要使用常規一點的方法來實現,也就是拼接要創建的 temp 文件夾名,然後跳轉過去。

function cdtmp {
    $parent = [System.IO.Path]::GetTempPath()
    $name = 'artin-' + $([System.IO.Path]::GetRandomFileName()).Split(".")[0]
    New-Item -ItemType Directory -Path (Join-Path $parent $name)
    cd (Join-Path $parent $name)
}

直接將這段代碼放入 $PROFILE 文件中就好了。

參考鏈接#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。