ターミナル/シェルで最も近い場所を取得する方法は?

ターミナル/シェルで最も近い場所を取得する方法は?

ターミナル(osx)で検索された最近の「場所」(ディレクトリ)のリストを取得する方法はありますか?私は、端末を開いていくつかのコマンドを入力し、私が最近行った2〜3の場所を見つけてそこに行きたいということです。

最近のコマンドの矢印と同じです。

可能ですか?

答え1

シェルがzsh(最新バージョンのmacosではデフォルト値であることがわかっています)、すべての場所を記憶させるオプションautopushdset -o autopushdシェル内)を設定できます(現在の作業ディレクトリ、//変更)。~/.zshrczshcdpushdpopd

これでスタックを見ることができます。

dirs

または、スタック内の各ディレクトリのインデックスを調べます。このインデックスは5番目のエントリに使用できます(配信された一番上の行は出力の現在のdirs -vディレクトリです)。cd +5ls -ld ~+5dirs

または:

print -rC1 $dirstack

$dirstack現在の作業ディレクトリなしで配列のスタックを公開します。)

または、指示が有効になっている高度な補完機能があり(参照compinstall)、完成リストが次の場所にある場合:

cd +<Tab>

または

cd -<Tab>

~-またはそれ以降のコマンドについては、次のようにします~+

any cmd ~+<Tab>

例えば、

set -o autopushd
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' menu select=2
autoload -Uz compinit
compinit -i

~/.zshrcいくつかのディレクトリにアクセスしてダブルクリックすると、Tab次のメニューが表示されます。

% cd +1
Completing directory stack
[1 -- ~/Videos]
 2 -- ~/Downloads
 3 -- ~/
 4 -- /usr
 5 -- /tmp

矢印キーを使用してナビゲートできます。

ディレクトリスタック機能自体は zsh に限定されない。それと//それpushdを操作するコマンドは1980年に導入され、popd後でコピーされました(1989年に1.02)および(1990年に1.0)。 、また(1991年2.0のzshに加えられる)から。 /(1989)では、後で(1991)でコピーされ、(1996)で、後で(1997)でコピーされました。 Only(Silentのようにこのスタックで使用することもできます)は具体的で、完成フレームワークは時代をはるかに先行しており、現在です(しかし追いついています)。dirscshbashzshcd +5cd -5csh~+~-bashzsh~+5zshbashautopushdcdpushdzshbashtcshfish

関連情報