web-dev-qa-db-ja.com

単にディレクトリの名前を入力してcdしますか?

20年前にどこかでこれを食べたか、夢見ていた。

基本的に:

もしblobblobとタイプすると
blobblob: command not found

けっこうだ。

私のシェルがこれらのエラーを取得したときに-コマンドが見つからない-それがその名前( 'blobblob')のディレクトリが存在するかどうかを確認し、存在する場合はそのディレクトリに対してcdを実行するようにします。

これを行わない、または慎重に行うにはいくつかの理由があると確信しています。
私はそれがかなりきちんとしていると思います、そしてどこか(ここのように!)を見つけることによってそれを試してみたいと思います。

これが意味するかもしれないちょっとしたシェルプログラミングをどのように行うか私にはわかりません。

58
Michael Durrant
  • バッシュ:shopt -s autocd
  • Zsh:setopt autocd
  • tcsh:set implicitcd

また、「autojump」は便利なツールです。インストールすると、j abcと入力できるようにディレクトリを記憶します。以前にabcにアクセスしたことがある場合は、x/d/f/g/t/abcと言うと、そこにcdします。
https://github.com/joelthelion/autojump

76
jw013

これを~/.bashrc

  #aliases to cd into the core dirs
  PROJECT_PARENT_DIRS[0]="$HOME/repos"
  #you can make it search more dirs by assigning new indexes to your other root dirs

  for PARENT_DIR in ${PROJECT_PARENT_DIRS[@]} ; do
    if [ -d "$PARENT_DIR" ]; then
      for PROJECT_DIR in $(/bin/ls $PARENT_DIR); do
        if [ ! -z `which $PROJECT_DIR` ]; then
          continue # don't set alias if there is something already a command on the path with the same name
        fi
        if [ -d "$PARENT_DIR/$PROJECT_DIR" ]; then
          alias "$PROJECT_DIR"="cd $PARENT_DIR/$PROJECT_DIR"
        fi
      done
    fi
  done
  #end alias
0