Puncte:0

De ce nu funcționează aliasul meu de la .bashrc?

drapel pl

Am scris o linie în .bashrc

alias untar='sudo tar âxvzf'

Acum, când folosesc „untar” în bash, primesc eroarea:

untar filename.tar.gz

tar: opțiune nevalidă -- '�'
Încercați „tar --help” sau „tar --usage” pentru mai multe informații.

Cu toate acestea, când folosesc comanda reală în loc de alias

sudo tar âxvzf filename.tar.gz

Funcționează bine.

Am alergat . ~/.bashrc, deci aliasul este „cunoscut” (sau cum l-ați numi). Ceea ce este evident și din mesajul de eroare care recunoaște că este o comandă tar. Există și alte pseudonime în bashrc care încă funcționează bine.

Deci, de ce nu funcționează aliasul meu?

drapel in
Probabil că veți dori să utilizați o funcție mai degrabă decât un alias. [Acest răspuns ar trebui să vă ofere ceea ce aveți nevoie](https://askubuntu.com/a/1135732/1222991)
bac0n avatar
drapel cn
@MarkRensen, ar trebui să sări peste `-z` și să-l lași pe `tar` să decidă ce decompresie să folosești.
sudodus avatar
drapel jp
+1 pentru pont de la @bac0n. L-am adoptat in raspunsul meu :-)
Puncte:5
drapel jp

Aliasul tău are un caracter rău, nu simbolul ASCII standard (semnul minus), ci altul, care de unele fonturi este redat ca o liniuță mai lungă.

Acest alias funcționează pentru mine

alias untar='sudo tar -xvf'

$ printf '-'|hexdump -C
00000000 2d |-|
00000001
$ printf 'â'|hexdump -C
00000000 e2 80 93 |...|
00000003
drapel pl
Multumesc, asta s-a rezolvat. Arăta ca - dar nu era -. Este ca problema cu semnul de întrebare grecesc.
sudodus avatar
drapel jp
Sunteți binevenit @MarkRensen. Mă bucur că l-am găsit: felicitări pentru fontul din fereastra terminalului meu.
bac0n avatar
drapel cn
ar trebui să puteți face `printf %x\n "'â"`
bac0n avatar
drapel cn
`printf '%b\n' \U$(printf '%x\n' "'â")` ar trebui să vă ofere un cerc complet.
sudodus avatar
drapel jp
@bac0n, comenzi mai frumoase și mai simple decât ale mele, dar poate nu la fel de bune ca explicație ca în cazul „hexdump” explicit.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.