1、输入终端命令和vi时,一定要确认是英文输入法!
比如中英文输入下的短杠号“-”是不同的,虽然看起来一样。如果是中文输入法下输入含有短杠号的命令,会导致很多意料之外的错误。比如在用sudo ln -s 创建软连接时,会提示 ln: failed to access ‘‐s’: No such file or directory、‘-s’ is not a filename or directory等等错误,让人哭笑不得;在配置QT编译环境,需要vi命令来编辑qtcreator.sh文件,笔者不小心用中文输入法输入了短杠号后保存,在后期用QT编译工程文件时,总是出现问题导致失败,比如报*.so库找不到的问题(实际上这个库就在工程文件夹中)。后来发现这一输入错误,改回后终于解决了此问题。中英文输入法苦我久矣!
2、使用sudo ln -s创建软连接时,要使用绝对路径
正确的格式:
ln -s [源路径] [目标路径]
或者:ln -s [源文件名] [目标路径下文件名]
# 其中源路径要求为绝对路径,否则会导致创建的软链接不能用。
例:ln -s /root/demo/code ~/code
如果没注意此问题,大概率会报下面错误:
这两种错误。
Too many levels of symbolic links
原因分析:这个错误简单翻译过来就是符号链接中出现的目录层数过多,原因是由于我们在建立符号链接是源路径使用了相对路径的方式,而 linux 系统对于相对路径的计算方式是基于当前目录的路径+相对路径的方式计算的,而在进入这个计算得出的路径下时,发现这个路径中又包含了软链接,也就是自己包含自己的逻辑,从而触发了递归计算。而一个没有跳出条件的递归结果就是触发路径长度限制``Too many levels of symbolic links`。
No such file or directory
原因分析:这个错误的原因就很简单了。上面说过,在计算软链接的路径时,如果源路径是一个相对路径则会基于当前路径计算绝对路径,即当前目录的路径+相对路径的计算结果。当这个结果路径不对时,就会报错 No such file or directory 。
未完待续…