我经常ls
在运行该命令后运行该cd
命令。如何cs
为该操作创建别名(如)?
答案1
最后,我想向您展示如何编写自己的“cd”命令的自定义替代品。
您是否发现自己在进入目录时总是输入相同的内容?您可能至少每次都会列出那里的文件,甚至您的手在每次“cd”后都会自动输入“ls”。
好吧,我试遍了所有我能想到的方法,结果发现只有一种方法可以正确实现我们的目标。我们必须创建一个 shell 函数。
Shell 函数是 Shell 编程的一部分。与编译型编程语言一样,函数提供了一种程序模块化。可以创建一个通用函数来使用不同的参数执行常用的逻辑或计算。在本例中,参数是当前工作目录。
这是一个简单的示例:
function cs () { cd $1 ls }
作为@geirha正确注意,如果您尝试切换到名称中带有空格的目录,上述函数将失败:
$ cs A\ B/
-bash: cd: A: No such file or directory
<current directory listing>
您应该使用以下函数:
function cs () {
cd "$@" && ls
}
一旦您将该代码添加到您的~/.bashrc
,您应该能够执行以下操作:
hello@world:~$ cs Documents/
example.pdf tunafish.odt
hello@world:~/Documents$
答案2
您可以使用builtin
bash 中的命令:
function cd() {
new_directory="$*";
if [ $# -eq 0 ]; then
new_directory=${HOME};
fi;
builtin cd "${new_directory}" && ls
}
答案3
使用函数而不是别名:
cs() { cd "$1" && ls; }
答案4
作为此函数的扩展:cs() { cd "$1" && ls; }
,您可能希望cd
通过使用$@
而不是"$1"
如下方式将该函数的所有参数传递给:cs() { cd $@ && ls; }
。