在tcsh中的每个cd命令之后自动执行ls命令

时间:2019-08-21 11:27:39

标签: linux shell tcsh

我通过给cd (dir_path)来更改目录。当我给出这个信息时,它也想显示目录中的内容。就像我们在进入该目录后键入ls一样。基本上,这两个命令应该只通过发出cd (dir_path)命令在该路径中一起执行lscd (dir_path)

如何在tcsh中做到这一点?

4 个答案:

答案 0 :(得分:2)

根据uzsolt的评论,此答案不适用于tcsh。原始问题未提及此要求。在OP在评论中提到tcsh后,问题得到了编辑。

请参阅uzsolt's answer,了解与tcsh配合使用的解决方案。这个答案应该被赞成。

bashzsh中,您可以定义一个名为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

答案 1 :(得分:1)

我认为最简单的方法是使用cwdcmd

alias cwdcmd ls

可以放入~/.tcshrc中。

请参见man tcsh

  

特殊别名

     

....

     

cwdcmd

     

每次更改工作目录后运行。

答案 2 :(得分:0)

alias cd 'cd \!* && ls && pwd'

答案 3 :(得分:-1)

有一种方法可以使用&&运算符

依次执行命令
<add name="DefaultConnection" connectionString="Data Source=DEESS01CW0184CO\SPQ11CONTENT;Initial Catalog=HangfireTest;User ID='testuser';password='testuser123'" providerName="System.Data.SqlClient" />