让 ls 显示当前日期和时间

让 ls 显示当前日期和时间

我希望 ls 在每次使用时显示当前日期和时间作为副作用ls。我该如何更改命令的功能?

答案1

一种选择是创建一个别名来调用date,例如alias ls='date;ls'。这是一个例子:

$ touch a b c
$ ls
a  b  c
$ alias ls='date;ls'
$ ls
Mon Oct 14 10:37:29 BST 2013
a  b  c

答案2

为您的 shell 定义 PS1 变量,这是您应该在 shell 中看到您想要的任何内容的地方。

例子:

export PS1="\t [\u@\h \W]\$ "
12:01:58 [user@host ~]$ ls /etc/fstab
/etc/fstab
12:02:00 [user@host ~]$ ls /etc/motd
/etc/motd

答案3

我不明白你为什么要这样做。也许您可以分享您真正想要实现的目标,我们可以帮助您找到更好的解决方案。

我个人所做的就是编辑我的 PS1 线路。我的 PS1 行在提示中显示大量信息,如下所示: PS1线 正如您所看到的,除了日期和时间之外,它还显示大量信息。为了在PS1中显示日期和时间,添加\@用于显示时间和\d用于显示日期。

明确回答您的问题,您可以在您的.bashrc.为此,请将以下行添加到您的~/.bashrc

alias ls='date && ls'

您说过您不想更改命令的工作方式。虽然这里看起来可能相反,但您必须了解别名的工作原理,才能理解这并没有真正改变命令这一事实ls。如果您确实从脚本内执行 ls,则会在子 shell 中调用该命令,这将阻止父 shell 在其上强制执行您的别名规则。因此,任何脚本调用ls都不会因为输出格式更改而中断。

编辑:由于其他人可能对 PS1 系列本身感兴趣,您可以找到相关详细信息这里。请注意,它非常大,如果您的目录包含数千个文件,则 shell 的性能将会出现明显的滞后。

相关内容