V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
loveshouhu
V2EX  ›  程序员

cd 路径深的时候,可以回来方便点

  •  
  •   loveshouhu · 2016-11-22 16:34:55 +08:00 · 6134 次点击
    这是一个创建于 2947 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了个小工具不改变默认 cd 的行为下

    可以使用 cd .... 来代替 cd ../../..

    保留 cd 的所有特性

    额外支持 用 cd .... 代替 cd ../../..

    cd . 当前目录

    cd .. 上层目录

    cd ... 上上层目录

    cd .... 上上上层目录

    https://github.com/kaidiren/smartcd

    第 1 条附言  ·  2016-11-23 13:23:01 +08:00
    评论里有很多种方法。
    根据需求自取。:)
    49 条回复    2016-11-24 16:44:59 +08:00
    yangg
        1
    yangg  
       2016-11-22 16:37:13 +08:00
    shopt -s autocd 2> /dev/null
    alias -- -="cd -"
    alias ..='cd ..'
    alias ...='cd ../../'
    alias .3='cd ../../../'
    alias .4='cd ../../../../'
    alias .5='cd ../../../../../'
    .0() {
    cd "$(git rev-parse --show-toplevel)"
    }
    langmoe
        2
    langmoe  
       2016-11-22 16:42:46 +08:00
    knightdf
        3
    knightdf  
       2016-11-22 16:44:04 +08:00
    d
    loveshouhu
        4
    loveshouhu  
    OP
       2016-11-22 16:47:00 +08:00   ❤️ 1
    @langmoe 这个在用的 autojump 有权重的概念。陌生的路径跳起来会有问题。
    loveshouhu
        5
    loveshouhu  
    OP
       2016-11-22 16:48:34 +08:00
    @yangg 实现的方式可以有很多种,但是我这边用的思路是尽量和 bash 原来的方式靠近,另外用的也不是穷举的方法 可以 CD .............. 很长的。虽然意义不太大 。_(:з」∠)_
    aristotll
        6
    aristotll  
       2016-11-22 16:54:28 +08:00   ❤️ 1
    zsh 是不是支持类似的东西的..
    loveshouhu
        7
    loveshouhu  
    OP
       2016-11-22 17:17:54 +08:00
    @aristotll 不知道,不喜欢 zsh 。所以一直没太用。_(:з」∠)_
    iamleung
        8
    iamleung  
       2016-11-22 17:50:52 +08:00
    alias cd2='cd ../../'
    alias cd3='cd ../../../'
    alias cd4='cd ../../../../'
    一直是这么搞的,再偶尔搭配 autojump ,也足够用了
    Osk
        9
    Osk  
       2016-11-22 18:06:14 +08:00 via Android   ❤️ 2
    cd -
    popd
    pushd
    Sasasu
        10
    Sasasu  
       2016-11-22 18:22:53 +08:00 via Android
    不支持 tab (:-0)TL
    aheadlead
        11
    aheadlead  
       2016-11-22 18:25:11 +08:00
    以前弄了个这个玩意

    function cdjump {
    CDJUMP_LAST_PWD=`pwd`
    for (( i=0; i<$1; i++ ))
    do
    cd ..
    echo "Jump to `pwd`"
    done
    }

    function cdjump_fuck {
    cd ${CDJUMP_LAST_PWD}
    }
    zhangxiao
        12
    zhangxiao  
       2016-11-22 19:19:05 +08:00
    zsh, 用的 bindkey -s '\eu' '^Ucd ..; ls^M'
    meta-u 就回上一层, meta-u,u,u,u,u,u,u... 十分迅捷
    xcodebuild
        13
    xcodebuild  
       2016-11-22 21:32:46 +08:00
    fasd 直接 z 回来就行了
    panda1001
        14
    panda1001  
       2016-11-22 21:54:21 +08:00
    fortunezhang
        15
    fortunezhang  
       2016-11-22 22:06:19 +08:00
    cd -
    4641585
        16
    4641585  
       2016-11-22 22:09:07 +08:00
    zsh 还是 oh my zsh 就带有这个功能…
    mingyun
        17
    mingyun  
       2016-11-22 22:46:46 +08:00
    @fortunezhang 这个常用
    qyz0123321
        18
    qyz0123321  
       2016-11-22 23:20:01 +08:00
    @Osk +1
    jin5354
        19
    jin5354  
       2016-11-23 01:00:33 +08:00
    zsh 自带这功能,配上 z.sh 真是实现光速文件夹切换
    cxbig
        20
    cxbig  
       2016-11-23 02:48:40 +08:00
    zsh 支持不带 cd 命令,只输入正确的路径即跳转的功能
    oh-my-zsh 提供了一堆点的 alias
    于是只需要用点就够了
    msg7086
        21
    msg7086  
       2016-11-23 05:47:41 +08:00
    嗯,一直用自带的…… zsh 。
    wuwuyun
        22
    wuwuyun  
       2016-11-23 07:58:06 +08:00
    oh-my-zsh 自带了一堆的 alias
    看下就知道了
    wobuhuicode
        23
    wobuhuicode  
       2016-11-23 08:10:42 +08:00 via iPhone
    Jump
    rashawn
        24
    rashawn  
       2016-11-23 08:26:22 +08:00 via iPhone
    这功能 prezto 里面有啊
    hei1000
        25
    hei1000  
       2016-11-23 09:38:24 +08:00
    这个还要新建个 project ?随便新建几个 aliases 不就行了

    另外推荐个自己写的快速跳转自己访问目录的命令
    https://github.com/c02y/dotfiles/blob/master/fish/.config/fish/config.fish#L442
    GeekCat
        26
    GeekCat  
       2016-11-23 09:39:53 +08:00
    还不如 pushd popd......
    lusyoe
        27
    lusyoe  
       2016-11-23 10:22:57 +08:00 via iPhone
    难道只有我用 ranger?
    sampeng
        28
    sampeng  
       2016-11-23 11:09:32 +08:00
    oh-my-zsh 的 d 命令。。不要太好用
    hei1000
        29
    hei1000  
       2016-11-23 11:58:52 +08:00 via Android
    @lusyoe ranger 是个好东西,我也在用
    v2014
        30
    v2014  
       2016-11-23 12:01:21 +08:00
    oh-my-zsh 启用 z 命令
    xream
        31
    xream  
       2016-11-23 12:05:55 +08:00
    springz
        32
    springz  
       2016-11-23 13:45:05 +08:00
    autojump+zsh+ohmyzsh 你值得拥有
    Felldeadbird
        33
    Felldeadbird  
       2016-11-23 14:42:56 +08:00
    学习了,我一直都是手动打 cd Σヽ(゚Д ゚; )ノ
    unknownservice
        34
    unknownservice  
       2016-11-23 15:17:08 +08:00
    一直用 cd ~ 习惯问题?
    sunsmooth
        35
    sunsmooth  
       2016-11-23 15:19:27 +08:00
    valkjsaaa
        36
    valkjsaaa  
       2016-11-23 15:30:18 +08:00
    oh-my-zsh 再开启 z plugin ,路径问题就基本解决咯
    hackpro
        37
    hackpro  
       2016-11-23 15:45:49 +08:00
    cd -
    grzhan
        38
    grzhan  
       2016-11-23 16:01:40 +08:00
    感觉这个用习惯了会经常在 cd 以外的地方用

    比如 cp .../foo.txt . 这样的
    thomaspaine
        39
    thomaspaine  
       2016-11-23 16:10:13 +08:00
    @loveshouhu 小守护~
    loveshouhu
        40
    loveshouhu  
    OP
       2016-11-23 17:55:01 +08:00
    @thomaspaine 我的天。是 XD 么?
    loveshouhu
        41
    loveshouhu  
    OP
       2016-11-23 17:56:30 +08:00
    @unknownservice 这个是直接跳回 用户的根目录。 跟 ... 的初衷不一样的。
    loveshouhu
        42
    loveshouhu  
    OP
       2016-11-23 17:57:07 +08:00
    @Sasasu tab 还是 ../.. 补全吧 _(:з」∠)_
    loveshouhu
        43
    loveshouhu  
    OP
       2016-11-23 17:59:17 +08:00
    @zhangxiao 快捷键什么的直接就高了一个层级。缺点是要记住这个快捷键。😂
    loveshouhu
        44
    loveshouhu  
    OP
       2016-11-23 18:00:12 +08:00
    @grzhan 😂 所以慎用。
    mcfog
        45
    mcfog  
       2016-11-23 18:00:32 +08:00 via Android
    fish 用户飘过
    loveshouhu
        46
    loveshouhu  
    OP
       2016-11-23 18:01:54 +08:00
    @mcfog 😂 今天风不错,飘好,不送。
    Arnie97
        47
    Arnie97  
       2016-11-24 16:01:55 +08:00 via Android
    alias p=pushd
    alias po=popd

    至于别的方案,自己机子上用用可以,换机器的时候就不好适应了…
    jiedreambuilder
        48
    jiedreambuilder  
       2016-11-24 16:40:23 +08:00
    cd ../ 回车
    ↑ 回车
    ↑ 回车
    ↑ 回车。。。
    jiedreambuilder
        49
    jiedreambuilder  
       2016-11-24 16:44:59 +08:00
    ↑ 跟 回车 距离那么近。。。感觉等你算好要敲多少个 . 你都出来了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5844 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 421ms · UTC 02:01 · PVG 10:01 · LAX 18:01 · JFK 21:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.