Vij*_*jay 13 unix shell command-line ksh
一般我们使用
cd .. 转到父目录
cd ../../转到父父目录.和
cd ../../../../../ 为第五个父目录.
这有什么简化方法吗?
我使用的shell是ksh.
Pau*_*ce. 10
这个函数适用于Bash,但可以为其他人做类似的事情(这可能在ksh和zsh中正常工作):
cdn () { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; }
Run Code Online (Sandbox Code Playgroud)
用法示例:
/some/dirs/and/subdirs$ cdn 3
/some/dirs/and/subdirs /some/dirs/and/subdirs
/some
/some$ popd
/some/dirs/and/subdirs$
Run Code Online (Sandbox Code Playgroud)
这是一个函数,它将cd指向当前工作目录上方的命名子目录:
cdu () { cd "${PWD%/$1/*}/$1"; }
Run Code Online (Sandbox Code Playgroud)
用法示例:
/usr/share/atom/resources/app/apm/src/generator$ cdu apm
/usr/share/atom/resources/app/apm$ cdu resources
/usr/share/atom/resources$ cd -
/usr/share/atom/resources/app/apm$ cdu share
/usr/share
Run Code Online (Sandbox Code Playgroud)
而且我以为我很懒...
很久以前,我厌倦了输入cd ..so,因为大约 1988 年,我的标准别名之一(以及 MSDOS/Windows 的批处理文件)是up. 也许我应该扩展这个概念:
alias up='cd ..'
alias up2='cd ../..'
alias up3='cd ../../..'
alias up4='cd ../../../..'
alias up5='cd ../../../../..'
alias up6='cd ../../../../../..'
Run Code Online (Sandbox Code Playgroud)