“ cd ..”的任何快捷方式吗?


30

有什么捷径cd ..吗?


47
打字需要很长时间吗?
右转

17
是的,确实需要很长时间才能完成。
maaartinus 2011年

2
尝试推送和弹出
Zachary Scott

19
我很高兴有人发现输入起来cd ..太麻烦了
Erik

8
我怀疑需要' cd ..' 的人经常使用“我必须先cd进入目录然后再​​谈论那里的文件”反模式,而不是指定文件系统路径。
bignose

Answers:


68

默认情况下不是(可能会有一些例外),没有。但是,如果使用alias命令,则可以创建如下所示的快捷方式:

alias ..="cd .."

这将允许您使用命令..来执行cd ..


10
该死,我只是在输入完全一样的东西。
马延科2011年

6
我也在用,还有alias ...="cd ../.."两个。另外,我可以推荐alias ,=cd "$OLDPWD"
maaartinus 2011年

13
@maaartinus: cd -
本杰明·班尼尔

1
@honk我不知道。但是,它太长了(我不需要输出)。
maaartinus 2011年

1
有人可以解释一下反对票吗?
Wuffers 2011年

82

激活该autocd选项。它可以让您键入..cd ..实际上可以让您使用任何目录作为命令名,并且可以cd使用它:

shopt -s autocd

出于好奇,zsh也存在同样的情况:

setopt auto_cd

1
这真是太好了。是时候在我所有的Linux机器上编辑.bashrc了。不幸的是,它似乎不适用于cygwin bash。
杂耍演员

3
哇,太好了。
Reid

5
@gordoco:是的,它仅是bash4.x。这就是为什么我一直使用zsh 14年的原因。
sam hocevar 2011年

1
zsh(+ auto_cd)FTW!
Johnsyweb 2011年

2
@LaC:技术优势并不总是主导地位的决定因素。Bash远比它老,并且使用它编写的内容也更多,几乎所有的shell程序员都知道它,比其他任何东西都多。改变可能很难。- 来自一个不知道所有zsh噪声是什么,并且只真正使用过bash的人:)
tshepang 2011年

42

我发现这很有用:

up() { local p= i=${1:-1}; while (( i-- )); do p+=../; done; cd "$p$2" && pwd; }

例如,up 4=cd ../../../..

作为奖励,其`up 4`/path/to/file工作方式与相似../../../../path/to/file


那很有意思!在2007年,我为.bashrc文件编写了类似的[function](home.arcor.de/hirnstrom/minis/index.html#up_X)。您的解决方案也可以使整个过程跳回去cd -。做得好!:)
用户未知,

真好 在我从事VMS DCL时,我有类似的东西,但是当我转向Unix及其变体时,并没有真正考虑过它。
GreenMatt 2012年

16

做完一个

bind '"\eu":"cd ..\C-m"'

您可以cd ..Alt-u。我曾经在chdir冠军赛上用过这个;-)

如果您想要整个swift-chdir套件

ALT+u cd ..
ALT+n enter next dir for selection
ALT+p enter previous dir for selection
ALT+SPC choose selected dir
ALT+l list subdirectories and highlight selection

只需将其包含在您的.bashrc中

swiftcd-status() {
    echo -n -e "\r\0033[1A\0033[J"
}

swiftcd-contents() {
    find "$swiftcdpath" -maxdepth 1 -executable -type d
}

swiftcd-setdir () 
{ 
    swiftcdpath=$PWD
    swiftcddirnum=1
    swiftcddircount=`swiftcd-contents|wc -l`;
    swiftcd-status
}

swiftcd-pd () 
{ 
    (( --swiftcddirnum <= 0 )) && swiftcddirnum=$swiftcddircount;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-updir () 
{ 
    cd ..;
    swiftcd-setdir
}

swiftcd-list () 
{ 
    local redOn="$(echo -e '\0033[31m\0033[1m')"
    local redOff="$(echo -e '\0033[m')"

    swiftcd-status
    ((  swiftcddircount > 1 )) && { 
        echo
        echo $(swiftcd-contents|sed 's!^'"$swiftcdpath"'!!'|sed $swiftcddirnum' s/\(.*\)/'"$redOn"'\1'"$redOff"'/')
    } 
}

swiftcd-nd () 
{ 
    (( ++swiftcddirnum > swiftcddircount )) && swiftcddirnum=1;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-switch() {
    (( $1 <= swiftcddircount && $1 > 0 )) && cd $(swiftcd-contents|sed -n $1' p')
}

bind '"\e ":"swiftcd-setdir\C-m"'
bind '"\ep":"swiftcd-pd\C-m"'
bind '"\eu":"swiftcd-updir\C-m"'
bind '"\en":"swiftcd-nd\C-m"'
bind '"\el":"swiftcd-list\C-m"'
swiftcd-setdir

4
什么是chdir冠军?无知
Peter Jaric

4
目录导航体育赛事。
artistoex 2011年

14

我使用这个是因为输入速度太快,经常会错过空格键:

alias cd..="cd .."

对于非unix人而言,最不方便的是偶尔在* nix盒+1上
mplungjan 2011年

11
s / non-unix/ Windows/
grawity

3
如果您输入速度太快而又缺少字符,那么很难相信添加别名cd..确实有用。
奥利(Olli)

3
我可以看到,如果您来自亲爱的旧DOS(在cd..有效的地方,它会如何帮助您:)
cambraca 2011年

1
由于某种原因,过去一周我经常输入cd..。我以为我不得不戒掉咖啡,但我更喜欢这种解决方案。
语法错误

7

尝试自动跳转:github上的自动跳转

这不仅将cd命令缩短为'j',而且还将缩短键入要跳转到的文件夹所需的字符。

如果您总是将CD放入/ home / foo / Projects / thenextfacebook文件夹,则可以执行“ j face”操作。它会自动了解哪个文件夹对您来说是最重要的,使用一个月后,我可以说它非常准确。


2

alias …='cd ..'.bashrc文件中使用。Unicode规则;)


1

我的bashrc文件包含

alias ..="cd .. && ls -lG"

以及

alias ,,="pushd .. && ls -lG"

1

尝试使用Cd Deluxe获得大大改进的cd命令。它支持“ cd ...”和“ cd ....”之类的内容,以便快速向上导航。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.