野声

Hey, 野声!

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

非常便利なコマンド:cdtmp

好久好久之前、sorrycc のビデオを見ている時、彼がとてもトリッキーなコマンド「cdtmp」を使っているのを発見しました。このコマンドを実行すると、シェルは /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 というメソッドしかなく、直接フォルダを作成することはできません。

そのため、一般的な方法を使用して作成する必要があります。つまり、作成する一時フォルダの名前を結合し、そこに移動する必要があります。

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 ファイルに直接追加してください。

参考リンク#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。