17

一般的に私たちは使用します

cd ..親ディレクトリに移動するため

cd ../../親の親ディレクトリに移動します。と

cd ../../../../../5番目の親ディレクトリ用。

これを行う簡単な方法はありますか?

私が使用しているシェルはkshです。

4

10 に答える 10

14

この関数は Bash 用ですが、他の関数でも同様のことができます (これは ksh と zsh でそのまま機能する可能性があります)。

cdn () { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; }

使用例:

/some/dirs/and/subdirs$ cdn 3
/some/dirs/and/subdirs /some/dirs/and/subdirs
/some
/some$ popd
/some/dirs/and/subdirs$

cd現在の作業ディレクトリの上の名前付きサブディレクトリに移動する関数は次のとおりです。

cdu () { cd "${PWD%/$1/*}/$1"; }

使用例:

/usr/share/atom/resources/app/apm/src/generator$ cdu apm
/usr/share/atom/resources/app/apm$ cdu resources
/usr/share/atom/resources$ cd -
/usr/share/atom/resources/app/apm$ cdu share
/usr/share
于 2009-12-09T06:35:14.630 に答える
3

そして自分は怠け者だと思っていた...

かなり前にタイピングに飽きてしまっcd ..たので、およそ 1988 年以来、私の標準的なエイリアス (および MSDOS/Windows のバッチ ファイル) の 1 つがup. おそらく、概念を拡張する必要があります。

alias up='cd ..'
alias up2='cd ../..'
alias up3='cd ../../..'
alias up4='cd ../../../..'
alias up5='cd ../../../../..'
alias up6='cd ../../../../../..'
于 2009-12-09T06:34:58.280 に答える
2

最近のプロジェクトをチェックアウトできますbd

あなたがこの道にいるなら

/home/user/project/src/org/main/site/utils/file/reader/whatever 

siteディレクトリにすばやく移動したい場合( と入力する代わりにcd ../../../..)、
次のように入力します。

bd site
于 2013-09-09T08:32:24.503 に答える
2

このようなエイリアスを設定する場合は注意が必要です。cd ../../../../... _ / から 2 つまたは 3 つのディレクトリしか下にない場合は、/ にたどり着きます。これを自分で試してみてください。

$ cd ~
$ pwd
/home/you
$ cd ../../../..
$ pwd
/

これは、/ の親ディレクトリが実際には / であるためです。

于 2009-12-09T06:40:31.890 に答える
0

ファイル名を入力したり覚えたりしたくない場合は、NerdTreeのようなものでディレクトリをナビゲートできますか?

于 2009-12-09T06:25:01.763 に答える
0

これは一般的に私が行う方法です。もちろん、ksh では、ナビゲーション キーを別のものに設定している場合があります。ksh を使用したときはk、上向き矢印の代わりに vi スタイルに設定していました。

シェル スクリプトでは、明示的に記述したほうがよいでしょう。絶対パス名を使用できる場合は、そのようにして次のようなコマンドを実行します。

cd /webdata/cgi-bin

スクリプトを実行して別のディレクトリ内のファイルに作用する可能性がある場合は、次のように考えることができます。

TOPDIR="/webdata"
cd $TOPDIR/cgi-bin

しかし、本当にどちらもできない場合は、次のように .. チェーンに固執してください。

chmod +x *.py
cd ../../../cgi-bin

これは非常に明確です。現在の作業ディレクトリでアクションを実行し、3 レベル上に移動して cgi-bin ディレクトリを選択します。シェル スクリプトで実行していることを理解できる人であれば、これに従うのに何の問題もありません。スクリプトが非常に複雑な場合は、次のようなコメントを追加すると役立ちます。

# change to TOPDIR/cartsys/production/code/python
cd python    
chmod +x *.py
cd ../../../cgi-bin

これは、コード ディレクトリにいて、1 レベル下の Python に変更したことを意味します。したがって、ディレクトリ階層のどこにいたかを忘れた読者には、3 レベル上にカウントアップするのに役立つリマインダーが表示されます。

cd ..

<up arrow><ENTER>
<up arrow><ENTER>
<up arrow><ENTER>
<up arrow><ENTER>
于 2009-12-09T21:51:11.980 に答える
0

この種のcd操作を簡素化するためにエイリアスを定義できます。

現在のディレクトリと目的の場所との関係を十分に確認../../../..する必要があるため、などのエイリアスを使用するとエラーが発生しやすいことに注意してください。

絶対パスを使用することをお勧めしますalias

于 2009-12-09T06:26:22.900 に答える
0

cd /ファイルシステムのルートに移動し、cd ~ホームディレクトリに移動するために使用します。
例: ログ ディレクタに移動するには、単に実行しますcd /var/log

于 2009-12-09T06:34:58.967 に答える
0

Bourne タイプのシェル ( を含むksh) の場合、シェル関数を記述できます。

cdup() {
    set -- "${1-1}"
    while test "$1" -gt 0; do
      cd ..
      set -- "$(($1-1))"
    done
}
于 2009-12-09T06:37:15.267 に答える