Flo*_*ciu 55
cd ../../../../../../../
Run Code Online (Sandbox Code Playgroud)
另外一个有用的导航提示是,例如,假设你继续从一个目录(称之为A)切换到另一个目录(称之为B),在你的情况下是7个目录.
所以,如果你在目录A:
A> cd ../../../../../../../
B> // Now you're in directory B and want to go back to A
B> cd -
Run Code Online (Sandbox Code Playgroud)
这将直接返回目录A. -扩展到您所在的上一个目录.
Gri*_*y K 17
别名(在你〜/ .bashrc中)
function cd_up() {
cd $(printf "%0.0s../" $(seq 1 $1));
}
alias 'cd..'='cd_up'
Run Code Online (Sandbox Code Playgroud)
并使用:
$ cd.. 7
Run Code Online (Sandbox Code Playgroud)
UPD: 或者在当前路径中制作更强大的变体cd到dir名称:
# cd up to n dirs
# using: cd.. 10 cd.. dir
function cd_up() {
case $1 in
*[!0-9]*) # if no a number
cd $( pwd | sed -r "s|(.*/$1[^/]*/).*|\1|" ) # search dir_name in current path, if found - cd to it
;; # if not found - not cd
*)
cd $(printf "%0.0s../" $(seq 1 $1)); # cd ../../../../ (N dirs)
;;
esac
}
alias 'cd..'='cd_up' # can not name function 'cd..'
Run Code Online (Sandbox Code Playgroud)
使用:
$ cd /home/user/documents/projects/reports/2014-10-01
$ cd.. doc
$ pwd
> /home/user/documents
Run Code Online (Sandbox Code Playgroud)
如果有一个命令,我会使用很多,我只会做一个别名.
你可以输入
alias ..='cd ..'
alias ...='cd ../..'
Run Code Online (Sandbox Code Playgroud)
然后你可以使用..一级升级并...升级两级.
我发现这是一个小小的改进:
通常,当您使用cd ..返回一个目录时,您最终会继续前进一个目录.要使这项工作,你必须使用函数而不是别名,所以而不是:
alias ..=”cd ../”
alias ..2=”cd ../../”
Run Code Online (Sandbox Code Playgroud)
您可以使用:
..()
{
cd ../$@
}
..2()
{
cd ../../$@
}
Run Code Online (Sandbox Code Playgroud)
但是,在使用它之后,很快就会发现你缺少这个函数的命令完成,这使它远没有那么有用.因此,我回过头来为这个函数添加了我自己的bash完成函数,可以粘贴到〜/ .bashrc或任何从你的〜/ .bashrc中调用的文件(例如〜/ .bash_completion),如果你想避免的话混乱.这是完成代码:
_..()
{
local cur=../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -d — $cur) )
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _.. -o nospace -S / ..
_..2()
{
local cur=../../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -d — $cur) )
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _..2 -o nospace -S / ..2
Run Code Online (Sandbox Code Playgroud)
.bashrc不记得我从哪里复制了这个函数,但它对我来说非常有用(例如,您可以放入文件中)
up() { local p= i=${1:-1}; while (( i-- )); do p+=../; done; cd "$p$2" && pwd; }
例如,要向上移动 7 个目录,需要输入up 7
| 归档时间: |
|
| 查看次数: |
37518 次 |
| 最近记录: |