我一直在尋找各種方法將clear和ls混合到一個命令中。 目前我定義命令X:Linux別名鏈命令(可以避免遞歸嗎?)
alias x="clear;ls"
現在有沒有外觀圖釋,以避免遞歸和定義:
alias ls='clear;ls'
我一直在尋找各種方法將clear和ls混合到一個命令中。 目前我定義命令X:Linux別名鏈命令(可以避免遞歸嗎?)
alias x="clear;ls"
現在有沒有外觀圖釋,以避免遞歸和定義:
alias ls='clear;ls'
如果你在命令名之前加了一個反斜槓,那將會禁用任何別名。
alias ls='clear;\ls'
或者,像阿爾諾說,剛使用LS的完整路徑。
我認爲這是最乾淨的解決方案,它工作得很好。謝謝 – GoTTimw
只要做到:
alias ls='clear;/usr/bin/ls'
打字的時候:
$ ls
首先它會搜索用戶定義的函數,它會啓動它,否則搜索$ PATH命令。
通過給出ls
命令的顯式路徑,可以避免遞歸。
這很有趣,因爲ls永遠不在/ usr/bin中。 – Hello71
這樣做的另一種方法是
alias ls='clear; command ls'
這是/usr/bin/ls
不同,因爲它仍然在$PATH
搜索ls
,但是會忽略shell函數或別名。
這適用於許多情況,而不僅僅是別名。如果您想直接使用內置函數和可執行文件,繞過函數和別名,請使用內置的'command'。 – Zenexer
我不能讓它在我的系統上執行任何遞歸操作,但是你嘗試過別名ls ='clear;/bin/ls''嗎? –
我的'ls'長期以來就是'ls'的別名,就像Manny D一樣,它從來沒有遞歸問題。我試過你的別名ls ='clear; ls'',它也能正常工作。這是在RHEL 5 Linux上,Bash版本是3.2.25 - 你在使用什麼樣的系統和shell? –
哦,我使用tcsh,如果我定義:alias ls''clear; ls''並使用ls它會拋出一個''Alias Loop。「'錯誤。但它在Bash下工作。 – GoTTimw