![为什么我的 .bashrc 别名不起作用?](https://linux22.com/image/1024706/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20.bashrc%20%E5%88%AB%E5%90%8D%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我在 .bashrc 中写了一行
alias untar='sudo tar –xvzf'
现在,当我在 bash 中使用“untar”时出现错误:
untar filename.tar.gz
tar: invalid option -- '�'
Try 'tar --help' or 'tar --usage' for more information.
但是当我使用实际命令而不是别名时
sudo tar –xvzf filename.tar.gz
它工作正常。
我确实运行了. ~/.bashrc
,所以别名是“已知的”(或者不管你怎么称呼它)。这也从错误消息中可以看出,该消息承认它是一个 tar 命令。bashrc 中还有其他别名仍然可以正常工作。
那么,为什么我的别名不起作用?
答案1
您的别名中有一个错误字符,不是标准 ASCII 符号(减号),而是另一个字符,某些字体会将其呈现为较长的破折号。
这个别名对我有用
alias untar='sudo tar -xvf'
$ printf '-'|hexdump -C
00000000 2d |-|
00000001
$ printf '–'|hexdump -C
00000000 e2 80 93 |...|
00000003