たとえば、私が
mkdir thisismyfolder912
thisismyfolder912
に切り替えるには、
cd thisismyfolder912
その方法は何ですか、そしてそれはどのように機能しますか?また、これを使用できる他の方法は何ですか?
あなたは古典的な歴史の拡張、またはReadline処理について話しているのですか? cd !$
次の入力行で、前の行の最後の引数に置き換えられます。または M-. または M-_ Readlineを使用してヤンクします。
コマンド履歴へのアクセスに関する質問の場合は、この名前の付いたコマンドを試してください
history
あなたも試すことができます Ctrl + r、最近入力したことを思い出そうとしているコマンドの入力を開始します。
(reverse-i-search)`cd ': cd mydir/data/
ヒット ESC コマンドを選択するか、終了します。これは、少なくともSuSEでは機能します。他のディストリビューションについてはよくわかりません。
それは同じくらい簡単です Alt + .
$ mkdir lasdfjalsdkjf
$ cd
Alt + .
$ cd lasdfjalsdkjf
これはいつも私のために働いてきました:
mkdir thisismyfolder
cd $_
関連するメモとして、bashでhistverifyを使用することをお勧めします。これを〜/ .bashrcに入れてください:
shopt -s histverify
これにより、bashは!$またはその他の履歴関数を展開した後にコマンドを出力し、Enterキーをもう一度押して実際に実行する前にコマンドを確認する機会を与えます。私にとって、サニティチェックは時々余分なキーを押す価値があります。 cd foo
コマンドではなく、rm -rf foo
コマンドを実行していることを確認したい...
私は頻繁に使用します Ctrl-R アプローチだけでなく Alt-. (これは、説明するシナリオに適しています)。たまに!$を使います。
これらは非常に便利な汎用テクニックです。
しかし、あなたの特定の質問に対処するには:
ディレクトリを作成して直接そこにcdすることは非常に一般的な組み合わせであるため、ディレクトリをラップする関数があると便利です。
function mcd {
local newdir='_mcd_command_failed_'
if [ -d "$1" ]; then # Dir exists, mention that
echo "$1 exists..."
newdir="$1"
else
if [ -n "$2" ]; then # We've specified a mode
command mkdir -p -m $2 "$1" && newdir = "$1"
else # Plain old mkdir
command mkdir -p "$1" && newdir="$1"
fi
fi
builtin cd "$newdir" # No matter what, cd into it
}
使用法:mcd thisismyfolder
Bashを使用する場合は、pushd
とpopd
をお勧めします。ディレクトリのスタックを作成して、すばやく参照できます。この例を参照してください。
PWD:~$ pushd /opt/google/chrome/resources/
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ pushd /etc/cron.daily/
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ pushd /opt/pac/lib/method/
/opt/pac/lib/method /etc/cron.daily /opt/google/chrome/resources ~
PWD:/opt/pac/lib/method$ popd
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ popd
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ popd
~
PWD:~$
あなたが置くならば、別のスレッドからチップを拾う:
bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward
.bashrcで、履歴から何かを入力し始めてから上矢印を押すと、履歴を項目ごとに確認するのではなく、すでに作成したもので始まる前のエントリにスキップします。入力しました。
これは、質問で与えられた特定の例ではあまり役に立たないと思いますが、その場で履歴にアクセスするのに役立つことの1つです。
シェルがreadlineを使用している場合(bash
の場合)、を押すようなことを行うことができます ATL+. 一緒?
yank-last-arg(M-。またはM-_)
前のコマンド(前の履歴エントリの最後のワード)に最後の引数を挿入します。引数を指定すると、yank-nth-argとまったく同じように動作します。 yank-last-argを連続して呼び出すと、履歴リストに戻り、各行の最後の引数が順番に挿入されます。