cd ..
向上一个文件夹。
是否有(单行)命令可以打开 n 个文件夹?
你当然可以定义一个函数来做到这一点:
$ go_up() { for i in $(seq $1); do cd ..; done }
$ go_up 3 # go 3 directories up
我不知道有任何命令可以做到这一点,但你自己创建一个很容易。例如,只需添加
cdn() {
for ((i=0;i<${1-0};i++))
do
cd ..
done
}
在你的~/.bashrc
文件中,在你创建一个新的 shell 之后,你可以运行
cdn N
你会按N
目录向上移动
好吧,另一个非常有趣的答案,这真的是一个单行字,向上 42 个父目录:
cd $(yes ../|head -42|tr -d \\n)
与 gniourf_gniourf 的其他答案相同,它很cd -
友好(它只是比最短答案长几个字符)。
替换42
为您喜欢的号码。
既然您了解了美妙命令的惊人力量yes
,您就可以加入黑暗面并使用邪恶命令eval
,当我们这样做时,我们可以使用可怕的反引号:
eval `yes 'cd ..;'|head -42`
这是迄今为止最短的单行,但它真的很糟糕:它使用eval
, 反引号而且它cd -
不友好。但是,嘿,它真的很好用而且很有趣!
您可以使用单行for
循环:..
for i in {1..3}; do cd ../; done
3
用你的替换n
例如:
m@mariachi:~/test/5/4/3/2/1$ pwd
/home/m/test/5/4/3/2/1
m@mariachi:~/test/5/4/3/2/1$ for i in {1..3}; do cd ../; done
m@mariachi:~/test/5/4$ pwd
/home/m/test/5/4
...但是我认为它不会比打字cd
然后 ..
点击tab
你想要上升的每个级别快得多!:)
你多久上升一次超过五个级别?如果答案不是太频繁,我建议您将这些cd -
友好别名放在您的个人资料中:
alias up2='cd ../..'
alias up3='cd ../../..'
alias up4='cd ../../../..'
alias up5='cd ../../../../..'
好处
一个有趣的方法:
cdupn() {
local a
[[ $1 =~ ^[[:digit:]]+$ ]] && printf -v a "%$1s" && cd "${a// /../}"
}
它是如何工作的?
a
我们用$1
空格填充变量。cd
where 每个空格a
已被替换../
。用于:
cdupn 42
上到第四十个父目录。
这种方法的优点是你仍然可以cd -
回到以前的目录,这与使用循环的方法不同。
绝对值得投入您的.bashrc
. 或不。