Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
plprapper
V2EX  ›  Linux

在命令行下,如何更舒服的退到某一层级的目录去。

  •  
  •   plprapper · Mar 2, 2014 · 9963 views
    This topic created in 4635 days ago, the information mentioned may be changed or developed.
    大多数 应该都是cd ../../../../..................................吧

    git地址 https://github.com/peiliping/shell/blob/master/base/Function.sh

    line num : 109

    ccd和_ccd 在bashrc中 加载 并complete -F _ccd ccd

    使用方法

    ccd + tab 会提示pwd 中的每一级目录

    ccd home 跳到 /home 目录下

    ccd h + tab 提示pwd中 带h的目录名字或者自动补全

    ccd 5 如果参数是数字 则直接向外跳N层目录(这个功能也许有人不喜欢吧,当初这么写是觉得以纯数字命令的目录名字会比较少,呵呵)

    自己用了一段时间感觉还不错。
    Supplement 1  ·  Jun 26, 2014
    做了一点补充 除了向后找目录 还可以继续从选择的目录向下继续了。

    >pwd

    /home/X/dev/git/nbp/src/main/java


    >ccd nbp/readme/sql/insert/


    >pwd

    /home/X/dev/git/nbp/readme/sql/insert/


    大家看看 是不是有这种需求呢
    40 replies  •  2014-06-26 22:14:27 +08:00
    wangkangluo1
    wangkangluo1
    Mar 2, 2014❤️1
    1
    pushd popd
    zealinux
    zealinux
    Mar 2, 2014
    2
    cd --
    manhere
    manhere
    Mar 2, 2014
    3
    一般还真没有频繁切换这么深目录的时候
    mongodb
    mongodb
    Mar 2, 2014
    4
    ccd数字不能忍...
    有很多目录是 2014/02/23/ 这种...
    web日志按小时切分存放的,同样也有2014/02/23/1500 这样的...

    不过想法还是挺好的。
    plprapper
    plprapper
    OP
    Mar 2, 2014
    5
    @wangkangluo1 用了一下感觉不是很方便。不过确实以前没用过pushd popd
    plprapper
    plprapper
    OP
    Mar 2, 2014
    6
    @mongodb 我主要是在代码目录切的时候比较多 ,你这个场景还真是没想到,去掉关于数字的判断就好了,或者加个 -N 之类的判断

    主要是有tab提示,用起来舒服多了。
    happy123
    happy123
    Mar 2, 2014
    7
    zsh+autojump
    humiaozuzu
    humiaozuzu
    Mar 2, 2014
    8
    1. oh-my-zsh cd ... = cd ../../
    2. brew install z
    alexrezit
    alexrezit
    Mar 2, 2014
    9
    alias d.="cd .."
    ksc010
    ksc010
    Mar 2, 2014
    10
    突然想到一个方法,待会写个demo发上来
    zuroc
    zuroc
    Mar 2, 2014
    11
    google autojump
    Mutoo
    Mutoo
    Mar 2, 2014
    12
    alias ..="cd .."
    ovear
    ovear
    Mar 2, 2014
    13
    cd ../
    上
    回车
    上
    回车
    ksc010
    ksc010
    Mar 2, 2014
    14
    好吧 刚才试了一下不行
    思路是这样的 写个脚本 匹配参数与当前路径 然后做个 调整目录
    但是问题是 这里的跳转并不影响shell 也就是调用脚本的终端 改变的只是当前进程的cwd
    代码如下
    #!/usr/bin/env python
    import os
    import sys
    pwd=os.getcwd()
    print pwd
    pwds=pwd.split(os.sep)
    print pwds
    path='/'
    if len(sys.argv)>1:
    print sys.argv
    for k in pwds:
    print k
    path=os.path.join(path,k)
    if sys.argv[1] in k:
    break
    print(path)
    os.chdir(path)

    还是 @happy123 zsh+autojump 靠谱
    zhangxiao
    zhangxiao
    Mar 2, 2014 via Android
    15
    我的zsh里,command+u 是去上层目录,很方便
    liliang13
    liliang13
    PRO
    Mar 2, 2014
    16
    @ovear 这个很科学
    cbwzwsq
    cbwzwsq
    Mar 2, 2014
    17
    autojump
    xiaket
    xiaket
    Mar 2, 2014
    18
    @Mutoo 嗯, 我也是这个思路, 于是:

    alias ..='cd ..'
    alias ...='cd ../..'
    alias ....='cd ../../..'
    est
    est
    Mar 2, 2014
    19
    @humiaozuzu 遇到一个名字叫 ... 的目录怎么办?
    banbanchs
    banbanchs
    Mar 2, 2014
    20
    @est cd ./...
    humiaozuzu
    humiaozuzu
    Mar 2, 2014❤️1
    21
    @est 好问题,但是这样的异常情况我没遇到过,所以可以忽略吧。。。
    hitsmaxft
    hitsmaxft
    Mar 2, 2014❤️1
    22
    cd - <tab>

    用zsh的同学, 你懂的
    ericFork
    ericFork
    Mar 2, 2014
    23
    autojump
    dirs -v
    humiaozuzu
    humiaozuzu
    Mar 2, 2014
    24
    ls 居然那么多 autojump 的。。。 表示还是 z 方便简洁
    AWSAM
    AWSAM
    Mar 2, 2014
    25
    表示用的是z
    rainysia
    rainysia
    Mar 3, 2014
    26
    常用的就这几个
    bashrc
    .. = cd ../
    ... = cd ../../
    .... = cd ../../../
    cdr = cd /
    cdw = cd /home/www
    然后是项目的
    cdo = cd /home/www/xxx/....
    已经非常快了
    还有切换用户的
    st = su tom
    sr = su - root
    oott123
    oott123
    Mar 3, 2014 via Android
    27
    @est 一个叫..的目录,它本身不就是上级目录么?
    我记得上级目录就叫..,难道还能另外创建这个目录?
    gerorim
    gerorim
    Mar 3, 2014 via Android
    28
    Shell 记忆命令的功能走起

    再把常用路径用 alias 缩短。
    yangg
    yangg
    Mar 3, 2014
    29
    upto ()
    {
    cd "${PWD/\/$@\/*//$@}"
    }
    _complete_upto() {
    local IFS=$'\n'
    local word=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=($(echo ${PWD#/} | sed 's|/|\n|g' | grep -i "^$word" | sed -e 's| |\\ |g'))
    }
    complete -o nospace -F _complete_upto upto

    /var/www/test/file1/file2 $ upto test
    jsonline
    jsonline
    Mar 3, 2014 via Android
    30
    autojump
    wenLiangcan
    wenLiangcan
    Mar 3, 2014 via Android
    31
    zsh +1
    9
    9
    Mar 3, 2014
    32
    @oott123 蛋疼,人家说的是 ... 三个点,就不能看清楚再回么
    args
    args
    Mar 3, 2014
    33
    "\C-xb": "cd ..^M"
    bash也可以设置快捷键。
    tamamaxox
    tamamaxox
    Mar 3, 2014
    34
    oh~my~zsh
    merlin852
    merlin852
    Mar 3, 2014
    35
    常用路径可以加到CDPATH里面,cd可以直接读路径下的目录
    robertlyc
    robertlyc
    Mar 3, 2014
    36
    惊现张教主
    greenblue007
    greenblue007
    Mar 4, 2014
    37
    cd ls tab
    dtubest
    dtubest
    Mar 13, 2014
    38
    高频目录,我都会pwd,粗暴直接
    xixi10111011
    xixi10111011
    Jun 26, 2014
    39
    alias
    keith3
    keith3
    Jun 26, 2014
    40
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4742 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 02:22 · PVG 10:22 · LAX 18:22 · JFK 21:22
    ♥ Do have faith in what you're doing.