Рейтинг:0

Почему мой псевдоним из .bashrc не работает?

флаг pl

Я написал строку в .bashrc

псевдоним untar='sudo tar âxvzf'

Теперь, когда я использую «untar» в bash, я получаю сообщение об ошибке:

распаковать имя файла.tar.gz

tar: недопустимая опция -- '�'
Попробуйте tar --help или tar --usage для получения дополнительной информации.

Однако, когда я использую фактическую команду вместо псевдонима

sudo tar âxvzf имя_файла.tar.gz

Это работает нормально.

я бежал . ~/.bashrc, поэтому псевдоним «известен» (или, как бы вы его ни называли). Что также очевидно из сообщения об ошибке, которое подтверждает, что это команда tar. В bashrc есть и другие псевдонимы, которые до сих пор работают нормально.

Итак, почему мой псевдоним не работает?

флаг in
Скорее всего, вы захотите использовать функцию, а не псевдоним. [Этот ответ должен дать вам то, что вам нужно] (https://askubuntu.com/a/1135732/1222991)
bac0n avatar
флаг cn
@MarkRensen, вы должны пропустить `-z` и позволить tar решить, какую декомпрессию использовать.
sudodus avatar
флаг jp
+1 за совет от @bac0n. Я принял это в своем ответе :-)
Рейтинг:5
флаг jp

Ваш псевдоним имеет неверный символ, не стандартный символ ASCII (знак минус), а другой, который некоторыми шрифтами отображается как более длинное тире.

Этот псевдоним работает для меня

псевдоним untar='sudo tar -xvf'

$ printf '-'|шестнадцатеричный дамп -C
00000000 2д |-|
00000001
$ printf 'â'|hexdump -C
00000000 e2 80 93 |...|
00000003
флаг pl
Спасибо, это решило это. Было похоже - но это не так -. Это как проблема с греческим вопросительным знаком.
sudodus avatar
флаг jp
Пожалуйста, @MarkRensen. Я рад, что смог это заметить: слава шрифту в моем окне терминала.
bac0n avatar
флаг cn
вы должны быть в состоянии сделать `printf %x\n "'â"`
bac0n avatar
флаг cn
`printf '%b\n' \U$(printf '%x\n' "'â")` должен дать вам полный круг.
sudodus avatar
флаг jp
@ bac0n, более приятные и простые команды, чем у меня, но, возможно, не так хороши, как объяснение, как с явным «шестнадцатеричным дампом».

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.