Ste*_*ger 6 bash directory cd-command
在我们的服务器上,我们有几个重复的文件夹结构用于测试、暂存和生产。除了微小的变化之外,所有三个之间的文件夹结构通常是相同的。
当我在开发 WordPress 插件时,我深入开发文件夹结构(例如~/dev/com/wp-content/plugins/myplugin)。我知道那是~/staging/com/wp-content/plugins/myplugin存在的。
如果我当前的工作目录是~/dev/com/wp-content/plugins/myplugin,我是否可以在~/staging/com/wp-content/plugins/myplugin 不输入整个目录结构的情况下轻松切换到?
我想输入类似, 或者甚至让命令尝试使用我当前的目录路径遍历新目录。显然,如果新文件夹不包含正确的结构,就会出错。cdx~/stagingcdx../../../../../staging
我是否一直在输入整个目录结构?或者,还有更好的方法?
在 中使用字符串替换bash:
$ a="~/dev/com/wp-content/plugins/myplugin"
$ echo ${a/dev/staging}
~/staging/com/wp-content/plugins/myplugin
Run Code Online (Sandbox Code Playgroud)
所以一个函数像:
cdx ()
{
cd "${PWD/$1/$2}"
}
Run Code Online (Sandbox Code Playgroud)
然后cdx dev staging从文件夹切换dev到staging. 通过一些检查,您可以命名函数cd:
cd ()
{
if [ $# != 2 ]
then
builtin cd "$@"
else
builtin cd "${PWD/$1/$2}"
fi
}
Run Code Online (Sandbox Code Playgroud)
影响:
~ # cd /tmp
/tmp # cd tmp srv
/srv # cd
~ # cd -
/srv
/srv # cd tmp var
/srv #
Run Code Online (Sandbox Code Playgroud)
这cd在所有情况下都保留了通常的行为,除了两个参数。
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |