シェルの前のディレクトリに戻る


306

pushd / popdを使用せずにbash、tcshを使用していた前のディレクトリに戻る方法はありますか?「戻る」などのように入力して、前のディレクトリに戻りました。

編集:

「cd-」は機能しますが、現在および以前のディレクトリに対してのみです。とにかく以前の以前のディレクトリに戻ることができますか、Webブラウザで戻る方法のように?

よろしく


1
以下に示すように、「pushd」と「popd」を使用してこれを行うことができます。
ブルー化された

8
ただ、サイドノート「CD - 」ユーザーのデフォルトdirecotry(/ホーム/ユーザー名)に行く
sdaffa23fdsf

1
最良の答えimho:unix.stackexchange.com/a/180640/158177はcd -1からcd -9を提供しますが、これはOPが求めていたものだと思います
-Titou

回答:


413

cd - (前のディレクトリに戻る)

他の以前のディレクトリに移動できるようにしたい場合、これはそのままでは使用できません。ただし、このスクリプトと手順を確認してください。

BASHの訪問済みディレクトリの履歴

cdコマンドは通常どおり機能します。新しい機能は、最後の10個のディレクトリの履歴と、cdコマンドを展開して表示およびアクセスすることです。cd-(または単にctrl + wを押す)履歴を表示します。すべてのディレクトリ名の前に番号が表示されます。cd -numに番号を付けて、履歴から対応するディレクトリにジャンプします。


20
pushdとpopdも役立つかもしれません
ロレンツォグ

6
@lorenzog:リドンチャンドラは、彼の質問で、「pushd / popdを使用せずに」と言った
Snark

@ OGC-ニックはこれを使用するためのcd --メニューのような方法で、あなたが言及したスクリプトを使用する必要があります
ラム

1
@ ogc-nickいいえ、ありません。は--、コマンドとそのオプションをパラメーターから単純に分離します(この投稿を参照)。の後--に引数が続かないため、最後のコマンドはcdホームディレクトリに切り替わるだけです。それ前の2番目のディレクトリであったかもしれませんが、それ単なる偶然です。
-Griddo

シンタックスシュガーをすごい
BugWhisperer

24

variableを使用することもできますcd $OLDPWD。これはシェルスクリプトでも使用できます。


6
$ OLDPWDは、スクリプトに適した最後のディレクトリを保持します。cpコマンドで$ OLDPWDを頻繁に使用します。例えば、cp -v $ OLDPWD / file。
ニールワイトマン

1

Windows(Node.jsコンマプロンプトコンソールケースを含む)が機能しないcd-1つ上のディレクトリに移動するには

cd ..

3
cd ..は親ディレクトリに移動しますが、これは問題の主題ではありませんでした。
ViaSat

1
これはここではなくbashですWindows
ティモ

0

これを行う最も簡単な方法は、この.bashrc power edit:https : //github.com/wting/autojumpを使用することです。ナビゲート先のフォルダーに「マーク」を付け、覚えやすい短縮名を付けます(私のアドバイス。前述の説明はドキュメントにありません)。たとえば、Pics for Picturesなどです。「ジャンプ」すると、フォルダーに戻ります。 「marked」および「marks」は、「pushdおよびpop dの場合と同様に」「stack」に追加したフォルダーをリストします。マークがセッション間で無限に変わらないという利点もあります

私はまだ複数のハードドライブで試してはいませんが、結果は単一のボリュームを使用した場合と似ているはずです。

Sライト


-1

ディレクトリツリーを下に移動して、元に戻りたい場合cd ..は、私の個人的なお気に入りです。ツリーのブランチ内を簡単にジャンプできます。cd ..ディレクトリを1つ、cd ../..2つ、cd ../../..3つ上に移動するだけです。また、cd ../../exampleor cd ../../../example/exampleなどの同じコマンドで別のブランチを上下に移動することもできます。他の人が言及したように、ディレクトリ間を行き来するcd -$OLDPWD、あなたの最善策です。


これが投票された特別な理由は何ですか?正しい答えが含まれていますが、おそらく唯一の答えではありません。
アダムエリクソン

-2

cd ..役立つと思います。ls -a任意のディレクトリでaを実行すると、2つのエントリがあることがわかります。1つは「。」という名前です。および別の「..」という名前; 単一のドットは既にあるディレクトリへの参照であり、二重のドットはパス内の前のディレクトリです。


22
..前のディレクトリではなく、単なる親ディレクトリです。
デアホッホシュプラー

4
この回答は、質問に正しく回答しなくても有用な情報を提供します。したがって、それに反対票を投じても意味はありません、私は努力に賛成しました。
Titou

1
これはバークレーではなく、参加だけのための特別な賞はありません
ナタンチェレ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.