cd ..
上传一个文件夹。
是否有一个(一行)命令可以上传n个文件夹?
答案 0 :(得分:4)
您确定可以定义一个函数来执行此操作:
$ go_up() { for i in $(seq $1); do cd ..; done }
$ go_up 3 # go 3 directories up
答案 1 :(得分:3)
我不知道有任何命令可以做到这一点,但很容易自己创建一个。例如,只需添加
cdn() {
for ((i=0;i<${1-0};i++))
do
cd ..
done
}
在您的~/.bashrc
文件中,在创建新shell后,您可以运行
cdn N
您将向上移动N
个目录
答案 2 :(得分:3)
好吧,另一个非常有趣的答案,那就是真的一个单行,上去42个父目录:
cd $(yes ../|head -42|tr -d \\n)
与gniourf_gniourf的另一个答案相同,它是cd -
友好的(并且它只是比最短答案长几个字符)。
将42
替换为您喜欢的号码。
现在你已经理解了精彩命令yes
的惊人力量,你可以加入黑暗的一面并使用邪恶的命令eval
,当我们在它时,我们可以使用可怕的反叛:
eval `yes 'cd ..;'|head -42`
这是迄今为止最短的单线,但它真的很糟糕:它使用eval
,反推,而且它不是cd -
友好的。但是,嘿,它运作得很好,而且很有趣!
答案 3 :(得分:2)
您可以使用单行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
!! :)
答案 4 :(得分:2)
你多久上升五级以上?如果答案是不经常我建议您将这些cd -
个友好别名放在您的个人资料中:
alias up2='cd ../..'
alias up3='cd ../../..'
alias up4='cd ../../../..'
alias up5='cd ../../../../..'
优点
答案 5 :(得分:1)
一个有趣的方式:
cdupn() {
local a
[[ $1 =~ ^[[:digit:]]+$ ]] && printf -v a "%$1s" && cd "${a// /../}"
}
它是如何运作的?
a
空格填充变量$1
。cd
,其中a
中的每个空格都已替换为../
。用作:
cdupn 42
进入第四十二个父目录。
此方法的 pro 是您仍然可以cd -
返回上一个目录,与使用循环的方法不同。
绝对值得投入.bashrc
。或者不是。