私は常に「cd ../../../../」に行きます。 'cmd 4'を実行して、4つのディレクトリを取り戻すことができるコマンド/エイリアスはありますか?
これをあなたの~/.bashrc
に入れてください:
cdup() {
levels=${1-1}
while ((levels--)); do
cd ..
done
}
(名前cdup
は、対応するFTPコマンドに由来します。参考までに。)
そのような状況では、「pushd」と「popd」を使用するように教えられました。
たとえば、「pushd。」と入力します。次に「cd/home」。ここで「popd」と入力すると、開始した場所に戻ります。
'pushd'/'popd'はスタックであり、そこに好きなだけディレクトリをプッシュできますが、最後にオンになり、最初にポップしたときにオフになります。
もちろん:
up(){ [$#= 0] && cd .. && return [$ 1 = 0] && return cd .. && up $( ($ 1-1)) }
速くて汚い:
cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }
ディレクトリを1回だけ変更するように作成されています。
別の方法は次のとおりです。
function cdup
{
cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}
printf
、次にcd
を使用してパスを作成します。
cdup() {
local path
printf -v path '%*s' "${1:-1}"
cd "${path// /../}"
}
使用:
cdup 4 # to go up four directories
cdup 1 # to explicitly go up one directory
cdup # to implicitly go up one
pushd
とpopd
を使用してロケーションマーカーを設定し、変更したディレクトリから簡単にそこに戻ることを検討することをお勧めします。
よく使用するディレクトリの名前で変数を設定し、そこでCDを作成することもできます。
MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
私は autojump を使用します。これにより、次のように入力できます。
j h
>> /home/cjulien
j et
>> /etc
それはあなたの習慣から学ぶことができ、非常に軽い(そして中毒性があります;))
あなたに役立つかもしれない2つの考え:
cd-
最後にいたディレクトリに戻ります。これを常に使用して、コードツリーの最深部からルートに戻ります...ただし、これはcdした場合にのみ機能します。 1つの変更でそれ。
cdd古い新しい
これは、私が過去に作成したスクリプト関数であり、類似したツリー間を移動するために使用しました。基本的に、2つの引数を取り、パス上で正規表現を実行しました。これは、ブランチなどの間を移動するのに最適です。たとえば、〜/ bzr/web/trunk/path/to/featureにいて、〜/ bzr/web/feature-branch/path/to/featureにアクセスする必要がある場合は、cdd trunk feature-branch
を実行します。私が持っていた実装はAIXの古風なシェル言語でしたが、それはかなり些細なことだったので、必要に応じて選択したシェルで簡単に実装できるはずです。構造が次のようになっているので、私たちにとっては非常に便利でした:.../{product}/{version}/{release}/{src、bld、dbg、pkg、tst}/{component}/...その木でかなり早く狂った。