Artin's Blog

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

0%

一个非常省事的命令: cdtmp

好久好久之前,看 sorrycc 的视频的时候,发现他用了一个很 tricky 的命令:cdtmp,执行命令后 shell 就会跳到 /tmp/sorrycc-xxxxxx 文件夹下,觉得十分好用。

自己也用了蛮久了,真的十分好用,有很多场景都需要用到:

想写一个验证想法的小 case,或者验证一下某个函数的用处,或者 clone 一下某个仓库查看一下相关内容。直接 cdtmp 打开一个临时文件夹,在里面直接做你想做的事情,而且完全不需要担心这些文件后续的清理问题,Windows 来说使用清理软件清理垃圾时一般都会删除临时文件,Linux 下也有相应的清除 tmp 目录的逻辑和方法。

简单介绍一下这个命令,给出 zsh 中的实现以及一个 Windows 下 PowerShell 里的同样功能的函数。

命令的作用就是:在系统的临时目录创建一个文件夹然后跳转过去。

zsh

sorrycc 在 sorrycc/zaobao#2 中给出了 zsh 中的实现的链接。

把下面这行代码添加到你的 .zshrc 文件即可:

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

这条命令会在系统临时目录下创建一个名为 artin-XXXXXX 的文件夹,然后跳转过去。

PowerShell

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

PowerShellSet-Alias 不是很好用,但可以写成一个函数,也非常简单。
不过 PowerShell 只有 New-TemporaryFile 这个方法,不能直接一个命令创建文件夹。所以我们要使用常规一点的方法来实现。

1
2
3
4
5
6
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)
}

直接获取一个随机的文件夹命令,然后使用方法创建后跳转过去就行。

参考链接

- 正文到此结束啦 -
如果您觉得有帮助的话,可以请我喝瓶饮料~
Artin 微信 微信
Artin 支付宝 支付宝