ディレクトリ名を表示せずに古いディレクトリに cd

ディレクトリ名を表示せずに古いディレクトリに cd

これ回答cd -Bashに変更する前に、ディレクトリの略語を教えてください。これには1つの重要な問題があります。変更されたディレクトリを印刷し、次の行のプロンプトでそのディレクトリが繰り返されるので、画面スペースを無駄にします。

私はそれができることを知っています。cd $OLDPWDその答えに言及されていますが、cd - >/dev/nullより多くの入力が必要です。

bashマニュアルページには次のように記載されています。

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

私が-最初に議論する人にならないようにするにはどうすればよいですか?オプションのパラメータを使用してcd?入力を最小限に抑えるためにエコーを抑制するか、他の方法を使用してください。いいえ使用するすべてのコンピュータで機能/エイリアスを定義する必要がありますか?

ベストアンサー1

cd最初のパラメータのみが考慮され、他のすべてのパラメータは無視されます。これらのオプションのいずれも以前のパス名のエコーには影響しません(文書には-@この効果があるかもしれませんが、私のシステムでは無効なオプションです)。

cd -入力する文字数が少ない、またはリダイレクトできるエイリアス/関数を使用したくない場合は、次の特殊/dev/nullチルダ拡張を使用することをお勧めしますbash

cd ~-

bashマニュアルページから:

チルダプレフィックスが「~-」の場合、シェル変数OLDPWD(設定されている場合)の値が置き換えられます。

bashこれは別の特別な意味を生み出した領域のようです。チルダ拡張は通常$ DIRSTACK、by pushdpopdおよび操作/研究と連携して動作し、そのディレクトリをインポートするために(ここでNはプッシュバックするレベル数)、使用した場合は他のコマンド()でもdirs使用できます。他のコマンド)。cp ~-/somefile .pushd~Ncd


ただし、複数のコンピュータにアカウントがあり、sshを使用して1か所でログインしていると仮定すると、次のものを追加することを検討する必要があります~/.bashrc

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

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

おすすめ記事