私は現在、木の下の非常に遠いところにある二つのパスの間を行ったり来たりして、ルートでお互いに流用しているのですが、この作業時間の多くを費やしています。もし cd
にユーザーを最後にいたディレクトリに連れて行く引数があれば、私の人生はもっと楽になるだろうと思いました
それは、私が入っていればの話です
/etc/foo/bar/baz/moo
と入力してください
cd /var/lib/fubarred_app/blargh/logs
最初のディレクトリに戻るときに、もう一度全体のパスを入力しなくても、最初のディレクトリに戻れるようにしてほしいです
私はそれぞれの場所で十分な数のコマンドを使用しているので、自分で入力するのと同じように、戻って欲しいパスを見つけるのは難しいので、メモリキーはそれをカットしません
前のディレクトリに移動するだけの短いコマンドはありますか?
217 Yitzchak 2011-08-17
The command
cd -
は、主流のシェルのほとんどで必要なスワップを実行します
cd "$OLDPWD"
これは前の作業ディレクトリを含む環境変数を使用します
cd
のPOSIX manページに言及しています
DESCRIPTION
上記ステップの実行中に PWD 環境変数が変更された場合、OLDPWD 環境変数も旧作業ディレクトリ(つまり cd を呼び出す直前の現在の作業ディレクトリ)の値に変更されなければならない
OPERANDS
– オペランドにハイフンを使用した場合は、コマンドと同等とする
cd "$OLDPWD" && pwd
は、前の作業ディレクトリに変更し、その名前を書き込むようになっています
309 bryan 2011-08-17
bryanさんの回答に加えて、スタックのようにディレクトリを構築するpushd
とpopd
もあります。これはWindows NTでも利用可能ですが、すべてのシェルで利用できるわけではありません
例えば、3つの異なるディレクトリに行くことができ、pushd
を呼び出すとスタックが常に表示されます
charon:~ werner$ pushd Documents/
~/Documents ~
charon:Documents werner$ pushd ../Movies/
~/Movies ~/Documents ~
charon:Movies werner$ pushd ../Downloads/
~/Downloads ~/Movies ~/Documents ~
そして、popd
を3回連続で呼び出すと、スタック内のそれらのディレクトリに逆順にたどり着きます。同時に、スタックは再び空になります
charon:Downloads werner$ popd
~/Movies ~/Documents ~
charon:Movies werner$ popd
~/Documents ~
charon:Documents werner$ popd
~
charon:~ werner$ popd
-bash: popd: directory stack empty
Zsh を使用している場合、AUTO_PUSHD オプションがあり、cd
を自動的にスタックにプッシュします
104 slhck 2011-08-17
ジャンプ」という番組があります
これらはあらゆる種類のディレクトリのナビゲーションを容易にします。パスの一部を指定して使用すると、それだけで動作します
あなたの場合
~$ j baz
/etc/foo/bar/baz/moo$
~$ j bla
/var/lib/fubarred_app/blargh/logs$
これらのプログラムには好きな文字を割り当てることができます。)
j2 と z は複数の検索語をサポートしています
~$ j baz src
/home/me/projects/baz/repository/trunk/src$
…そして、より多くのオプション
~$ j -l # list directories by "frecency"(frequency + recency) score
~$ j -r PATTERN # match by rank only, not recency
~$ j -t PATTERN # match by recency only, not rank
13 hayalci 2011-08-17
これを使えば、ディレクトリのエイリアスを簡単に作ることができます
a() { alias $1=cd\ $PWD; }
a 1
and later:
1
10 Mr Example 2011-08-18
cd -
とcd $OLDPWD
に加えて
CTRL-R
を押して、前に入力したcd
コマンドの数文字を入力することで、履歴検索を利用することができます。CTRL-R
を何度も押すと、古い検索結果が表示されます
この方法は、変更するパスが2つ以上ある場合に、より便利になります
10 musa 2011-08-18
bashmarksは、一連のフォルダをブックマークして、タブ補完でそれらの間をジャンプできるようにします
フォルダをブックマークするには、そのフォルダに移動して、このようにブックマークするだけです
bookmark foo
ブックマークの名前は “foo” になります。そのフォルダに戻りたいときは、以下のようにしてください
go foo
ブックマークの一覧を見るには
bookmarksshow
タブ補完機能を利用して、シュービーブックマークに移動するだけです
go sho[tab]
7 Handyman5 2011-08-18
もう一つの可能性としては、2つのウィンドウを開いたままにして、1つのウィンドウを各ディレクトリに配置するという方法もあります
5 Alger 2011-08-18
これは厳密にはあなたの質問への答えではないことを知っていますが、それはあなたをあなたの重要なディレクトリに連れて行くという目標に到達するのに役立ちます
どのような降順UNIX-bashでも、CDPATHを使ってcd-commandが検索するフォルダを拡張することができます
.bashrc-fileから
export CDPATH='.:~/source/'
cd は最初にあなたの現在のフォルダを検索し、次に私のコーディングプロジェクトディレクトリを検索します
cd myproject
… は、私が現在立っている場所から ~/sources/myproject に連れて行ってくれます
シンプルな小さな機能で、私のディレクトリナビゲーションを大いに助けてくれました
4 phareim 2011-08-19
うん、cd -
がいいんだけど、シェルの力不足が気になる。popd
とpushd
もいいけど、あのj
もいい感じ
私は自分のユーティリティをリングに投入します…それは私がこの10年ほど前から構築し、カスタマイズし、移行してきたもので、私がやりたいことには問題なく動作しています
それがあなたのために機能するならば、それは素晴らしいことですが、もしそうでないならば、他の何かを得ることを約束してください 🙂cd
だけでは生きていけない
3 Derek Wyatt 2011-08-18
2つのディレクトリしかない場合、一番簡単な方法は、前述したように
cd -
過去にそういうことがあったときに、ちょっとしたコツを教えてもらったことがあるので、参考になるかもしれません
.cshrcファイルにエイリアスコマンドを入れます
alias moo /etc/foo/bar/baz/moo alias logs cd /var/lib/fubarred_app/blargh/logs
マイホームディレクトリから興味のあるパスへのリンクショートカット。これは一回限りです
cd ~ ln -s /var/lib/fubarred_app/blargh/logs blargh ln -s /etc/foo/bar/baz/moo
これならば、ディレクトリを簡単に変更することができます
cd ~/moo
cd ~/blargh
3 PearsonArtPhoto 2011-08-19
Autojumpは、あなたのアクションから、このビデオを参照してください、bash/sh/zsh “cd “コマンドです
これは、最後のフォルダを学習した後、mooに移動します
j moo
2 oluies 2011-08-18
beam
自分のツールは持っていますが、Dereksのツールやj
も見てみようと思います
もちろん、飛び降り自殺の第一選択は
cd –
私のツールは、locate
が利用可能なシステム上のユニークな名前のディレクトリを対象としており、マッチするディレクトリ名を検索し、最初にマッチしたディレクトリにジャンプします
beam ()
{
ldir=$(locate $1 | egrep "$1$" | head -n 1);
if [[ -d $ldir ]]; then
echo $ldir;
cd $ldir;
else
echo "no directory "$ldir;
fi
}
Dependencies:
- locate
- grep
- head
Drawbacks:
- 最後に更新されたb-runよりも新しいディレクトリが見つかりません
- 複数のディレクトリが一致する場合は、あなたが心に持っていたものに転送されるかどうか、それはあなたの運に依存します
Improvements/modifications:
- 最初のディレクトリを選択するのではなく、1,2,3,… と入力して /bin, /usr/bin, /usr/local/bin … に行くように、選択肢のリストを表示するようにコードを変更することができます
Usage:
- この関数を /etc/bash.bashrc や ~/.bashprofile に入れておくと便利です
私の解決策のメリット
cd -
のように2つのディレクトリに限定されない- ビームを使う前に一度もディレクトリーに行かなくても大丈夫です
2 user unknown 2011-08-18