2009-12-09 49 views
9

一般我们在使用切换到上级目录的UNIX

cd ..用于将父目录

cd ../../去父母父目录。和

cd ../../../../../第5个父目录。

有没有简化的方法呢?

我使用的shell是ksh。

+0

您可以在结束后离开断斜线。另外,您的问题的答案可能取决于哪个shell。 – 2009-12-09 06:24:57

+0

一些快捷方式:'cd -'可以带你回到你刚从哪里来的地方。 'cd〜'把你带到你的主目录。 – Asaph 2009-12-09 06:33:25

+0

您可以签新的命令“'bd'”:参见[我的回答如下(http://stackoverflow.com/a/18694331/6309) – VonC 2013-09-09 08:33:10

回答

6

此功能对于猛砸,但类似的事情就可以给别人做(这可能工作作为-是KSH和zsh中):

cdn() { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; } 

用法示例:

/some/dirs/and/subdirs$ cdn 3 
/some/dirs/and/subdirs /some/dirs/and/subdirs 
/some 
/some$ popd 
/some/dirs/and/subdirs$ 
+0

我正在接受这一点,因为它似乎我们没有直接的命令行短为此,我希望有一些方法可以在命令行上简短地完成。 – Vijay 2009-12-09 09:23:11

0

如果你不喜欢打字或记住文件名,你可以用NerdTree之类的东西导航目录吗?

0

您可以定义别名来简化这种cd操作。

注意,这将是容易使在../../../..等方面有一个别名错误,因为你将不得不非常肯定你的当前目录,在那里你想成为的关系的。

最好使用绝对路径与alias

0

,我以为我是懒......

很久以前,我厌倦了打字cd ..这样的,因为我的标准别名大约1988年一个(和批次MSDOS/Windows文件)是up。也许我应该继承的概念:

alias up='cd ..' 
alias up2='cd ../..' 
alias up3='cd ../../..' 
alias up4='cd ../../../..' 
alias up5='cd ../../../../..' 
alias up6='cd ../../../../../..' 
0

使用cd /去你文件系统的根目录,cd ~去你的主目录。
例如:去你的日志导演只是做cd /var/log

0

对于Bourne (包括ksh),你可以编写一个shell函数:

cdup() { 
    set -- "${1-1}" 
    while test "$1" -gt 0; do 
     cd .. 
     set -- "$(($1-1))" 
    done 
} 
2

你需要是c如果你设置了这样的别名,这是有意义的。当你cd ../../../../..时,你不会总是出现5个目录。如果你只有2或3个目录下来/你会在/中结束。亲自尝试一下。

$ cd ~ 
$ pwd 
/home/you 
$ cd ../../../.. 
$ pwd 
/

发生这种情况是因为/的父目录实际上是/。

+1

这不能被认为是答案,而应该是一个评论。 – Vijay 2009-12-09 09:21:02

+1

你会如何建议像这样写的警告'评论'?为了清晰起见,它似乎是适合垂直空间的。有时候,一个问题的真正答案是要弄清楚,你可能不想按照你第一次以为你想做的事情做事。我希望你知道你的'cdn 5'可能只是'cdn 1',可能会为你节省更多的时间。 – istruble 2009-12-09 09:51:42

0

这通常是我如何做到的。当然,在ksh中,您可能会将导航键设置为其他内容。当我使用ksh时,我使用它们设置为vi风格,以便将k而不是向上箭头。

在shell脚本最好是要明确。如果你可以使用绝对路径那么这样做并运行像这样的命令:

cd /webdata/cgi-bin 

如果脚本可能会运行到作用于不同的目录中的文件,那么你可以考虑这样的事情:

TOPDIR="/webdata" 
cd $TOPDIR/cgi-bin 

但如果你真的不能做任何一样东西,坚持..链,像这样:

chmod +x *.py 
cd ../../../cgi-bin 

这是很清楚的。在当前工作目录中执行一个操作,然后导航3个级别并选择cgi-bin目录。任何能够理解你在shell脚本中做什么的人都应该毫不费力地遵循这一点。如果你的脚本是非常复杂的,那么这将有助于增加一些评论是这样的:

# change to TOPDIR/cartsys/production/code/python 
cd python  
chmod +x *.py 
cd ../../../cgi-bin 

的含义是,你在代码目录和一个水平变化到蟒蛇,因此谁忘了你的地方,读者在目录层次结构中看到提醒,以帮助他们计算3个级别。

cd .. 

<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
0

您可以检查出recent project bd

如果你在这条道路

/home/user/project/src/org/main/site/utils/file/reader/whatever 

,你想去site目录快速(而不是键入cd ../../../..
然后只需键入:

bd site