讓 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 的效能將會出現明顯的延遲。

相關內容