在 tcsh 中的每个 cd 命令后自动执行 ls 命令
Automate ls command after every cd command in tcsh
我通过 cd (dir_path)
更改目录。当我给这个的时候,它也想显示目录中的内容。假设我们在进入该目录后键入 ls
。基本上这两个命令应该一起执行 cd (dir_path)
和 ls
在该路径中只有通过给出 cd (dir_path)
命令。
如何在 tcsh
中做到这一点?
有一种方法可以使用 && 运算符一个接一个地执行命令
cd `directory` && ls
根据 uzsolt 的评论,此答案不适用于 tcsh
。最初的问题没有提到这个要求。在 OP 在评论中提到 tcsh
后,该问题稍后被编辑。
有关适用于 tcsh
的解决方案,请参阅 。这个答案应该被点赞。
在bash
或zsh
中你可以定义一个名为cd
的函数
cd ()
{
command cd "$@" && ls
}
然后 运行 cd somedir
您将调用函数 cd
而不是命令。如果你想调用普通的cd
命令,使用
command cd [somedir]
或者您稍后可以使用
删除该函数
unset cd
或者定义一个不同名称的函数并使用别名
cdls ()
{
command cd "$@" && ls
}
alias cd=cdls
然后您可以使用 cdls [somedir]
或 cd [somedir]
。
您可以再次致电
command cd [somedir]
获取正常的 cd
命令。
您也可以删除别名以获得正常行为。
unalias cd
我认为最简单的方法是使用cwdcmd
:
alias cwdcmd ls
可以写成~/.tcshrc
.
参见man tcsh:
Special aliases
....
cwdcmd
Runs after every change of working directory.
alias cd 'cd \!* && ls && pwd'
我通过 cd (dir_path)
更改目录。当我给这个的时候,它也想显示目录中的内容。假设我们在进入该目录后键入 ls
。基本上这两个命令应该一起执行 cd (dir_path)
和 ls
在该路径中只有通过给出 cd (dir_path)
命令。
如何在 tcsh
中做到这一点?
有一种方法可以使用 && 运算符一个接一个地执行命令
cd `directory` && ls
根据 uzsolt 的评论,此答案不适用于 tcsh
。最初的问题没有提到这个要求。在 OP 在评论中提到 tcsh
后,该问题稍后被编辑。
有关适用于 tcsh
的解决方案,请参阅
在bash
或zsh
中你可以定义一个名为cd
cd ()
{
command cd "$@" && ls
}
然后 运行 cd somedir
您将调用函数 cd
而不是命令。如果你想调用普通的cd
命令,使用
command cd [somedir]
或者您稍后可以使用
删除该函数unset cd
或者定义一个不同名称的函数并使用别名
cdls ()
{
command cd "$@" && ls
}
alias cd=cdls
然后您可以使用 cdls [somedir]
或 cd [somedir]
。
您可以再次致电
command cd [somedir]
获取正常的 cd
命令。
您也可以删除别名以获得正常行为。
unalias cd
我认为最简单的方法是使用cwdcmd
:
alias cwdcmd ls
可以写成~/.tcshrc
.
参见man tcsh:
Special aliases
....
cwdcmd
Runs after every change of working directory.
alias cd 'cd \!* && ls && pwd'