Linux 终端中从此告别枯燥频繁的 cd - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
sunhang09
V2EX    Linux

Linux 终端中从此告别枯燥频繁的 cd

  •  1
     
  •   sunhang09 2023-08-09 12:02:44 +08:00 5411 次点击
    这是一个创建于 793 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在 linux shell 终端上调试一些项目,要经常切换目录路径,频繁 cd 。 使用 C++和 shell 编写了一工具,该工具在 linux shell 终端上管理目录路径,自定义的 pa 命令方便快捷地到达某一指定的目录中,从此告别频繁枯燥地来回 cd 。

    https://www.bilibili.com/video/BV1TN411a7wM/?vd_source=a643cd4183fb58a03eec1afd594fa3f1#reply489385339

    代码仓库在评论区。欢迎提出各种问题。

    34 条回复    2023-08-19 22:46:37 +08:00
    k9982874
        1
    k9982874  
       2023-08-09 12:07:10 +08:00 via Android
    z???
    lixiang2017
        2
    lixiang2017  
       2023-08-09 12:08:57 +08:00 via Android
    auto-jump, j?
    sunhang09
        3
    sunhang09  
    OP
       2023-08-09 12:18:27 +08:00
    不是的,是自己写的命令。pa 命令。paths-mgr 的缩写
    @lixiang2017
    sunhang09
        4
    sunhang09  
    OP
       2023-08-09 12:18:42 +08:00
    @k9982874 这是啥?
    msg7086
        5
    msg7086  
       2023-08-09 12:22:15 +08:00
    @sunhang09 zsh-z
    chotow
        6
    chotow  
       2023-08-09 12:31:06 +08:00 via iPhone   5
    这个 pa ,我第一眼以为是……
    啪的一下就切换目录了,很快啊!
    lyyQAQ
        7
    lyyQAQ  
       2023-08-09 12:32:01 +08:00
    @sunhang09 #4 zsh 的一个自带插件,它会记录所有你去过的路径,下次再去的时候输入 `z [你去过的路径的一部分]`就可以直接过去
    比如我有一个目录
    `/home/ubuntu/tools/clash/`
    我 cd 进去过一次之后,下次不管我在哪里,我直接输入`z cl`就会跳过去。

    @lixiang2017 说的 autojump 也是一个 zsh 插件,功能和 z 类似
    nightwitch
        8
    nightwitch  
       2023-08-09 12:32:56 +08:00 via Android
    虽然发明轮子的精神可嘉。但是社区太多类似的久经考验的项目了。z.sh ,autojump 等等太有名了
    yarnom
        9
    yarnom  
       2023-08-09 12:33:53 +08:00 via Android
    挺好的,相当于常用路径,但是我可能会更倾向直接使用 ln 命令,或者 nnn 或 ranger 这类终端文件管理器
    israinbow
        10
    israinbow  
       2023-08-09 12:38:27 +08:00   2
    @sunhang09 #4 zoxide, 全平台的, 我在 windows 和 mac 上也在用. https://github.com/ajeetdsouza/zoxide
    deplivesb
        11
    deplivesb  
       2023-08-09 12:43:50 +08:00
    重复造轮子
    tool2d
        12
    tool2d  
       2023-08-09 12:54:15 +08:00
    挺好的,搞的我也想写一个了。

    主要是人懒,不想打字,就想用上下左右箭头。

    我发现自己的服务器上,bash_history 里重复的命令,能占到 80%,但是每次 ssh 后,都要重复输入一次。做成快捷方式就快多了。
    NessajCN
        13
    NessajCN  
       2023-08-09 13:13:00 +08:00
    alias zcl='cd ~/tools/clash' ?
    Alias4ck
        14
    Alias4ck  
       2023-08-09 13:24:30 +08:00
    重复造轮子精神可嘉 但是有可能别人的轮子,功能更多更好 比如 zoxide 哈哈哈
    sunhang09
        15
    sunhang09  
    OP
       2023-08-09 13:35:12 +08:00
    @chotow 你这么一说,我感觉这个名字起错了,很污的感觉
    fxxkgw
        16
    fxxkgw  
       2023-08-09 13:37:03 +08:00 via Android
    pushd popd ?
    mineralsalt
        17
    mineralsalt  
       2023-08-09 13:43:35 +08:00
    zsh 有个 autojump 的插件, 和你的功能应该是一样的吧
    deepwaka
        18
    deepwaka  
       2023-08-09 13:57:52 +08:00
    @chotow 有 bear 来
    66z
        19
    66z  
       2023-08-09 15:02:38 +08:00
    学到了
    zoxide 很好用
    eggt
        20
    eggt  
       2023-08-09 15:53:16 +08:00
    @lyyQAQ 自带这个吗,为啥我这个提示
    Desktop z home
    zsh: command not found: z
    sunhang09
        21
    sunhang09  
    OP
       2023-08-09 16:53:31 +08:00
    @Alias4ck 收到了 +打击,哈哈
    sunhang09
        22
    sunhang09  
    OP
       2023-08-09 16:53:54 +08:00
    @fxxkgw 这个感觉不太好用
    wildman9527
        23
    wildman9527  
       2023-08-09 20:33:21 +08:00
    @chotow #6 趁路径不注意, 偷袭~, 不讲武德!
    acerphoenix
        24
    acerphoenix  
       2023-08-09 23:23:08 +08:00
    我最早用 autojump ,然后用 z.lua, 现在用 zoxide ,主要是配合 lf 就它跑通了。
    proxytoworld
        25
    proxytoworld  
       2023-08-10 02:17:24 +08:00
    @eggt 手动安装
    james122333
        26
    james122333  
       2023-08-10 07:18:38 +08:00 via Android
    这种东西特地用其它语言写是不好的
    两种方法是不错的 一种是将目录位置存为变量 不论是命令呼叫还是参数补全皆可用(目录下目录或档案) 因为有 glob bash 通常用这种方式 虽然不是太好但可以接受 也可以使用 shopt -s direxpand 按下 tab 后将变量转为位置
    另一种是 zsh 有提供的 非常好的功能
    hash -d abc=/etc (将位置 hash 起来)
    hash -d (列出所有位置希哈过的)
    cd ~abc (这行与 bash 变量类似 命另呼叫参数皆可 自带 direxpand bash 无此功能因~指向/home)

    一堆搞 plugin 其实都做的太过头了 我也一直觉得那些 plugin 很烂
    james122333
        27
    james122333  
       2023-08-10 07:35:30 +08:00 via Android
    @james122333

    搞错没有自带 direxpand...
    eggt
        28
    eggt  
       2023-08-10 08:33:30 +08:00
    @proxytoworld 名字叫啥?
    lyyQAQ
        29
    lyyQAQ  
       2023-08-10 09:06:01 +08:00
    @eggt #20 zshrc 里,plugins 里面加上 z 呢,我记得这个是自带的
    proxytoworld
        30
    proxytoworld  
       2023-08-10 14:38:26 +08:00
    @eggt
    @lyyQAQ

    ohmyzsh z
    koebehshian
        31
    koebehshian  
       2023-08-10 23:38:47 +08:00
    不会多开几个 tab ?
    xddddx
        32
    xddddx  
       2023-08-10 23:42:47 +08:00
    zinit+zoxide 或者 ranger 之类的终端文件管理器
    wizardyhnr
        33
    wizardyhnr  
       2023-08-11 04:11:19 +08:00
    快速跳转目录执行命令还是用 ranger 吧,一步到位。另外如果要频繁在几个目录间切换执行命令,我更愿意多开几个 tab 。
    ihackevin
        34
    ihackevin  
       2023-08-19 22:46:37 +08:00
    ctrl+r ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2899 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 13:50 PVG 21:50 LAX 06:50 JFK 09:50
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86