ディレクトリ名のエコーなしで前のディレクトリに移動します


9

この回答によりcd -、Bashの以前のディレクトリに変更するための省略形が得られました。これには大きな問題があります。変更先のディレクトリが出力され、画面スペースが無駄になります。そのディレクトリは次の行のプロンプトで繰り返されるためです。

cd $OLDPWDもできることはわかっていcd - >/dev/nullます。その回答でも言及されていますが、それははるかにタイピングです。

bashmanページ、それは言います:

...または-が最初の引数で、ディレクトリの変更が成功した場合、新しい作業ディレクトリの絶対パス名が標準出力に書き込まれます。

-最初の議論にならないようにするにはどうすればよいですか?cdオプションの引数のいずれかを使用して?使用するすべてのマシンで関数/エイリアスを定義する必要なしに、エコーを抑制したり、タイピング最小限にしたりする他の方法はありますか?


ほぼ同じ質問がここにあります...
don_crissti 2015年

回答:


12

cd他のすべてを無視して、最初の引数のみを考慮に入れます。以前のパス名のエコーに影響を与えるオプションはありません(ドキュメントに-@その影響があるかもしれませんが、私のシステムでは無効なオプションです)。

エイリアスや関数を使用したくない場合はcd -、に入力する文字数が少なくなるか、にリダイレクトされる可能性があります/dev/null。私の提案は、で特別なチルダ展開を使用することですbash

cd ~-

bashmanページから:

チルダ接頭辞が「〜-」の場合、シェル変数OLDPWDの値(設定されている場合)が置き換えられます。

これは、bash特別な意味が生まれたさらに別の領域のようです。チルダの展開は、通常$ DIRSTACK上で動作、操作/によって調査pushdpopdおよびdirs、それは同様に他のコマンドで使用することができます(cp ~-/somefile .)あなたが使用している場合pushd、あなたは使用することができます~Nを取得する(Nは、バックレベルの数に押されている場合)これらのディレクトリ(cdまたは他のコマンド)。


ところで、複数のマシンにアカウントがあり、sshを使用して1か所からそれらにログインする場合は、にを追加することを検討してください~/.bashrc

if [ -f ~/.bash_common ]; then
    . ~/.bash_common
fi

次に、これらの各マシンscpに「プッシュ」bash_commonするために使用するスクリプトを作業マシンに作成します。これにより、最小限のオーバーヘッドで複数のマシンに共通の機能を追加して共有できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.