Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
Livid
406.45D
549.49D
V2EX  ›  Linux

Linux / Bash 下除了在 .profile 中使用 alias,还有什么其他可以方便快速跳转目录的方式?

  •  
  •   Livid ·
    PRO
    · May 7, 2019 · 12369 views
    This topic created in 2746 days ago, the information mentioned may be changed or developed.

    一直在用下面这样的方式在 .profile 中定义一些 alias,可以用于快速跳转到一些经常会用到的目录。

    alias p='cd /Users/user/Documents/Projects/example'
    

    很好奇还没有其他也很方便的方式?

    73 replies  •  2019-05-10 02:58:08 +08:00
    Mithril
    Mithril
    May 7, 2019❤️8
    1
    你可以试试 autojump
    https://github.com/wting/autojump
    reus
    reus
    May 7, 2019
    2
    cd -

    pushd

    autojump
    alexfu
    alexfu
    May 7, 2019
    3
    zsh 里的 z
    LokiSharp
    LokiSharp
    May 7, 2019
    4
    zsh+oh-my-zsh+autojump
    Luckyray
    Luckyray
    May 7, 2019 via iPhone
    5
    zsh 的 z 命令
    okampfer
    okampfer
    May 7, 2019 via Android
    6
    试试 z 吧,oh-my-zsh 和 oh-my-fish 都有插件。
    xiaket
    xiaket
    May 7, 2019
    7
    纯 bash 的解决方案, 设置 CDPATH
    est
    est
    May 7, 2019
    8
    ln -s /Users/user/Documents/Projects/example ~/1
    cd ~/1
    MeteorCat
    MeteorCat
    May 7, 2019 via Android
    9
    autojump+1
    tomychen
    tomychen
    May 7, 2019
    10
    z ?
    lampxiongdi
    lampxiongdi
    May 7, 2019 via iPhone
    11
    z 值得拥有
    lanjz
    lanjz
    May 7, 2019❤️1
    12
    Rsl
    Rsl
    May 7, 2019
    13
    autojump + 1
    lycbug666
    lycbug666
    May 7, 2019
    14
    z/autojump 跳转目录很方便,autojump 可以为目录设置权重
    fasd 可以快速跳转 /模糊查找 /操作文件
    fasd 提供了 -e 参数可以指定使用什么编辑器操作选定的路径
    例如设置 ’ alias v='f -e vim', 就可以使用 v zsh 直接编辑 ~/.zsh 文件
    xlsepiphone
    xlsepiphone
    May 7, 2019
    15
    借楼问一下 mac 下面的 fish shell 有类似的命令行工具吗
    pp3182429
    pp3182429
    May 7, 2019
    16
    我一般软连接

    ```sh
    > ln -s /Users/user/Documents/Projects/example ~/example-works

    > cd ~/ex<tab>
    ```
    quinoa42
    quinoa42
    May 7, 2019 via Android
    17
    fzf
    cd **
    qgy18
    qgy18
    May 7, 2019
    18
    oh my zsh 中的 j 命令,背后是 autojump 这个 plugin
    lonelygo
    lonelygo
    May 7, 2019
    19
    z 和 j 都用,再来个 fzf 还是很爽的。
    CSM
    CSM
    May 7, 2019 via Android
    20
    我一般是手动跳转一次,以后再输入 cd /U 这样开头的几个就会有提示
    orzjerry
    orzjerry
    May 7, 2019
    21
    autojump + 1
    myth
    myth
    May 7, 2019
    22
    用 screen,常用的目录一直开着对应的 windows (title 自动设置成目录名)
    想去哪个目录,快捷键跳到对应的 windows 就好。
    cuminflea
    cuminflea
    May 7, 2019
    23
    一站式解决方案:

    https://github.com/b4b4r07/enhancd
    Cooky
    Cooky
    May 7, 2019 via Android
    24
    按住左 shift,右键“ 在此处打开 Linux shell ”
    kevinroot
    kevinroot
    May 7, 2019
    25
    autojump + 1, j 目录名
    iceiceice
    iceiceice
    May 7, 2019
    26
    autojump +1
    mcfog
    mcfog
    May 7, 2019
    27
    @xlsepiphone 可以参(抄)考下我的 https://github.com/mcfog/dotfiles-fish, 纯 fasd 可以用最老的这个 https://github.com/mcfog/dotfiles-fish/blob/3eefb2c37a70e08062252328638714b36b38691e/custom/fasd.fish, 但强烈建议整合 fzf 用,就是这个 https://github.com/mcfog/dotfiles-fish/blob/master/functions/j.fish

    另外这几个 autojump j z fasd 都是老古董了,新一点的有个 rust 的 autojump-rs 和一个作者好像在本站的 z.lua
    lululau
    lululau
    May 7, 2019
    28
    我用的 autojump + fzf 和自定义的一些 zle widget

    可以实现这些目录跳转方式:

    1. alt-a -> cd .. | alt-p -> cd $OLD_PWD | alt-P -> project root dir
    2. alt-c -> recursive subdirectories tree using fzf
    3. alt-C -> non-recursive subdirectories list using fzf
    4. alt-j -> autojump historical dir list using fzf
    5. SPC-d-d -> cd ~/Downloads
    6. SPC-d-m -> cd ~/Movies
    7. SPC-d-c -> cd ~/.config
    ... ...
    lc4t
    lc4t
    May 7, 2019
    29
    一直使用 autojump,然后其他命令会用一个 shell 来调用,相当于一个控制台
    mcfog
    mcfog
    May 7, 2019
    30
    @Livid

    fzf 配合简单的文本文件就能实现非常流畅“书签收藏”功能,和大家讲的基于历史的 autojump 系列不一样,完全自己控制, 灵感来自这个 https://dmitryfrank.com/articles/shell_shortcuts,后来我自己移植(重写)了 fish 的,直接在指定目录下 fav <别名> 收藏,favdel 取消收藏,jf <query>跳转,然后绑定一下 jf,幸福指数特别高

    https://github.com/mcfog/dotfiles-fish/commit/98ac3048296f7523ffec4fdadae45a8f440b0efe
    wednesdayco
    wednesdayco
    May 7, 2019
    31
    zsh

    plugins=(
    git
    zsh-autosuggestions
    autojump
    )
    yulewg
    yulewg
    May 7, 2019
    33
    我一直用 zsh 的 wd
    L3au
    L3au
    May 7, 2019
    34
    oh-my-zsh

    z [regex1 regex2...] 跳转到最近最匹配的目录

    d 命令展示最近访问的目录,再通过数字跳转
    yzlnew
    yzlnew
    May 7, 2019 via Android
    35
    虽然 z.lua 很快,但是还是习惯 autojump 了
    mr2xd
    mr2xd
    May 7, 2019
    36
    服务器装 ohmyzsh 有没有什么风险
    CivAx
    CivAx
    May 7, 2019
    37
    实际上如果你的目录真的很常用,那么你一定至少在 1000 行 History 里输入过至少 1 次完整路径

    那么问题就已经解决了。Ctrl+R 打开搜索,敲入关键字就能补全你的 CD 命令,回车完事

    完全不需要任何调配和额外软件
    ingin
    ingin
    May 7, 2019
    38
    人家都说了 bash !!!
    Mithrandir
    Mithrandir
    May 7, 2019
    39
    z
    alkene
    alkene
    May 7, 2019
    40
    charles2java
    charles2java
    May 7, 2019 via Android
    41
    一个 source cdDir.sh 即可,不需要安装其他
    kevinhwang
    kevinhwang
    May 7, 2019
    42
    [z.lua]( https://github.com/skywind3000/z.lua ),支持 bash,支持常用目录跳转,支持快捷键,配合 fzf 使用。
    lihnzx
    lihnzx
    May 7, 2019
    43
    @pp3182429 好方法, 当时我改文件名也用的这个方法
    ynyounuo
    ynyounuo
    May 7, 2019
    44
    推荐 z.lua ,好处在于作者在意产品的速度和表现,并且持续维护并增加一些新的功能。虽然很多功能比较 niche,但可以稳定改善切换目录的习惯,比如说 `-b`。
    RaymondYip
    RaymondYip
    May 7, 2019
    45
    autojump +1
    huxiaohaiyang
    huxiaohaiyang
    May 7, 2019
    46
    iTerm2->Profiles-> add one
    ifaii
    ifaii
    May 7, 2019
    47
    ctrl+r
    反向搜索 特别好用
    itechify
    itechify
    May 7, 2019 via Android
    48
    zsh/oh-my-zsh/autojump,谁用谁知道
    tinywhale
    tinywhale
    May 7, 2019
    49
    一个 script 搞定 https://github.com/rupa/z
    Kobayashi
    Kobayashi
    May 7, 2019❤️1
    50
    autojump 又慢( Python 性能问题)功能又差(通过 cd 命令次数计算使用频率),为什么不用点好的?

    速度快选 zsh-z, z-lua。功能强选 fasd。这几位速度都比 autojump 好,而且基于目录下执行命令的次数做使用频率统计,比 autojump 好很多。

    方案二是做书签,跳到书签后根据情况再用 cd 跳。ZSH 插件 urbainvaes/fzf-marks 专门来干这个的。

    方案三,配合 TUI 文件管理器,利用文件管理内置书签功能,跳转。配置为退出文件管理器切换目录即可。参考 ranger 和 vifm。

    从问题来看,说的是 Bash,恐怕只能方案三。

    参考链接:

    1. autojump, z, z.lua, fasd 实现方案和速度对比,https://sjc.v2ex.com/t/528858

    2. fuzzy finder 做书签,https://github.com/urbainvaes/fzf-marks

    3. ranger 退出文件管理器自动切换路径,https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh

    4. vifm 退出文件管理器自动切换路径,https://wiki.vifm.info/index.php/How_to_set_Vifm_current_directory_after_leaving_sub-shell
    Oneneuuu
    Oneneuuu
    May 7, 2019
    51
    习惯 ctrl +r & zsh-autosuggestions
    yim7
    yim7
    May 7, 2019
    52
    实用方式 z
    还有简单的 pushd popd
    Tink
    Tink
    May 7, 2019
    53
    z
    cuminflea
    cuminflea
    May 7, 2019 via iPad
    54
    https://jeoygin.org/2018/01/20/customize-macOS-5/
    这篇文章里梳理了一下类似的东东
    vHypnos
    vHypnos
    May 8, 2019
    55
    autojump +1
    SharkIng
    SharkIng
    May 8, 2019
    56
    autojump 或者 z 我个人更喜欢 autojump 一些

    前往以前去过的 directory 的时候可以 j dir_name 这样直接跳转
    lilpig
    lilpig
    May 8, 2019 via Android
    57
    autojump
    ytlm
    ytlm
    May 8, 2019 via Android
    58
    autojump + fzf
    zhouzm
    zhouzm
    May 8, 2019
    59
    jianzong
    jianzong
    May 8, 2019
    60
    因为不喜欢工具上的依赖,所以一直避免使用 zsh 和 第三方工具,我的办法是用 alfred 联想到目录之后,拖拽过去 terminal。很好奇有没有其他人也是这么做的。
    SenLief
    SenLief
    May 8, 2019 via Android
    61
    z?
    henryhu
    henryhu
    May 8, 2019
    62
    IanPeverell
    IanPeverell
    May 8, 2019
    63
    .bash_profile 里面定义一些变量,比如 nvm 就是通过 export NVM_DIR="$HOME/.nvm",就可以直接 cd $NVM_DIR 了
    blueswhisper
    blueswhisper
    May 8, 2019
    64
    z +1
    NB40B938mff85mtq
    NB40B938mff85mtq
    May 8, 2019
    65
    我觉得软链和别名就挺方便啊.....(手动狗头
    dodo2012
    dodo2012
    May 8, 2019
    66
    z,一直在用
    kzzhr
    kzzhr
    May 8, 2019 via iPhone
    67
    没有人用 hash -d 么。

    再加 ctrl r 的模糊匹配,感觉还可以
    Lumuy
    Lumuy
    May 8, 2019 via Android
    68
    z,很智能
    ngn999
    ngn999
    May 8, 2019
    69
    autojump +10086.
    还看到 hacer news 上有讨论一个[z.lua]( https://github.com/skywind3000/z.lua), 没用过,不评价
    ech0x
    ech0x
    May 8, 2019
    71
    试试 z.lua
    Imr
    Imr
    May 9, 2019 via iPhone
    72
    1. 常用目录 ln -s 放常用目录下,比如 ~

    2. alias 挺好用啊,有什么不妥吗
    quinoa42
    quinoa42
    May 10, 2019
    73
    c() {
    cd $(fd --absolute-path -L -t d . $1 | fzf)
    }
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1059 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 153ms · UTC 23:05 · PVG 07:05 · LAX 15:05 · JFK 18:05
    ♥ Do have faith in what you're doing.