it-swarm-eu.dev

Spusťte příkaz stínovaný aliasem

Řekněme, že mám následující alias v bash - alias ls='ls --color=auto' - a já chci volat obyčejný ls bez voleb. Je to jediný způsob, jak to udělat, je unalias, provést příkaz a pak znovu alias? Nebo existuje nějaký šikovný trik nebo řešení?

173

Chcete-li alias zakázat, můžete také zadat předponu lomítko: \ls

Upravit: Mezi další způsoby, jak to udělat, patří:

Použijte "příkaz": command ls podle Mikel .

Použijte úplnou cestu: /bin/ls podle ther .

Citujte příkaz: "ls" nebo 'ls' podle Mikel komentáře.

Alias ​​můžete pro danou relaci terminálu dočasně odebrat pomocí unalias command_name.

225
Not Now

To je příkaz command.

Snaž se

command ls

Toto říká Shell, aby obešel aliasy a funkce.

Tento způsob je podporován bash , zsh a ash /dash.

82
Mikel

Alias ​​je pouze definovaná zkratka. V tomto příkladu je definovaný alias řetězec ls, který provede ls --color=auto. Pokud toto chování nechcete, můžete zavolat binární ls pomocí absolutní cesty.

Takže vykonávat jen /bin/ls vytvoří výstup bez barvy, protože to není alias, který jste definovali.

Alias ​​můžete také změnit na něco jiného, ​​nebo přidat nový alias, který provede pouze ls bez parametrů barev.

19
George M

Jiným způsobem, na základě odpovědi @ uther, je použít $(which ...) nebo `which ...` (pomocí backticks ``) automaticky najít cestu spustitelného souboru. Toto bude fungovat v bash:

$(which ls)

`which ls`

Nepochybně jednoduše předponu přikládejte příkazem \ je mnohem kratší.

[~ # ~] update [~ # ~] : Podle Jak používat `který` v aliasu příkazu? , to se nezdá být vůbec spolehlivé.

10
krlmlr

Osobně se prostě vyhýbám definování aliasu se stejnými jmény jako příkazy, takže ls vždy vyvolá skutečný příkaz. Mám aliasy nebo funkce pro různé kombinace možností jako l, ll a lg. (To znamená, že potřebuji unalias ls v mém .bashrc nebo .cshrc.)

Zjistil jsem, že předpoklady operačního systému o tom, jaké možnosti bych mohl raději preferovat (potlačení předpokladů návrhářů samotného příkazu ls) zřídka odpovídají mému osobnímu vkusu. Náhodě se mi nelíbí vzhled ls --color=auto a jeho čitelnost se může značně lišit mezi černobílým a černobílým.

YMMV a další řešení jsou samozřejmě stále dobrá.

2
Keith Thompson

Zdá se, že psaní příkazu velkými písmeny funguje podobně jako LS, i když si nejsem jistý proč.

1
asmeurer