4

如何定义别名,以便当我这样做cd Abcd时,“Abcd”是目录的名称,该目录更改为“Abcd”,然后ls显示目录的内容?

4

2 回答 2

5

我相信你不能使用别名来实现这一点,但你可以定义一个函数来做到这一点:

#print contents after moving to given directory
cl()
{
    cd $@
    ls
}

您可以将其粘贴在您的~/.bashrc文件中。

如果您希望覆盖内置cd命令,那么您可以这样做:

#print contents after moving to given directory
cd()
{
    builtin cd $@
    ls
}
于 2014-10-06T07:12:41.850 回答
-1

UNIX

创建别名

您的 Linux 发行版很可能不会在您的家中创建 .bash_aliases 文件,或者您甚至可以手动创建它。要创建文件,请键入以下命令: touch ~/.bash_alisaes

现在,每次您启动新终端时,该文件都会自动执行。

您现在可以做的是创建一个别名列表并将它们添加到该文件以供以后使用。创建一个别名并更新 ~/.bash_aliases 文件以使其永久化。

通用方法:创建自定义脚本

在 /usr/bin 文件夹中创建一个 bash 脚本,它应该看起来像这样

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

它真的那么容易。

只需将 bash 脚本命名为您想在终端中输入的内容,并使其可执行:chmod +x 文件名,您就可以开始了!

视窗

您可以使用DOSKEY命令:

来自维基百科:

DOSKey 是一个用于 MS-DOS 和 Microsoft Windows 的实用程序,它向命令行解释器 COMMAND.COM 和 cmd.exe 添加了命令历史记录、宏功能和改进的编辑功能。它作为 TSR 程序包含在 MS-DOS 和 PC-DOS 版本 5 及更高版本以及 Microsoft 的 Windows 95/98/Me 中。

例如:要创建一个快速无条件格式化磁盘的宏,请输入:

doskey qf=格式 $1 /q /u

要快速无条件地格式化驱动器 Z 中的磁盘,请键入:

qf Z:

要定义具有多个命令的宏,请使用 $t 分隔命令,因此您的问题的解决方案如下:

doskey cd=cd $1$tdir

现在,这仅适用于您当前打开的命令窗口。要使其永久化,只需创建一个批处理文件并将文件的绝对路径的值设置为regedit

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

regedit 的来源:superuser.com/a/238858

于 2013-01-03T21:03:43.547 回答