如何为 cd 和 ls 创建别名?

如何为 cd 和 ls 创建别名?

我经常ls在运行该命令后运行该cd命令。如何cs为该操作创建别名(如)?

答案1

Bash 技巧和窍门:使用样式的“cd”

最后,我想向您展示如何编写自己的“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

您可以使用builtinbash 中的命令:

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; }

相关内容