这个命令做的事情很少
- sudo 授予 'ln' 二进制文件的 root 权限
- ln 被指示遍历所有匹配模式 /opt/local/somesoft/somsoft* 的文件
- 对于每个这样的文件,它都会尝试在 /opt/local/bin 目录中创建符号链接
- 这个创建的符号链接将与刚刚处理的文件同名
你的第一个问题是,危险吗?很可能不是,很少有事情可能出错
- 你的 $PATH 环境包含一些奇怪的目录,所以不是调用 /usr/bin/ln (我相信这是最初的意图),你会被欺骗调用一些不同的可执行文件。例如,如果您的 PATH=.:/tmp:/usr/bin,则首先在当前目录中搜索“ln”,然后在 /tmp 中搜索,然后在 /usr/bin 中搜索。它以超级用户权限调用...
- 没有像 /opt/local/somesoft/somsoft* 这样的文件。在这种情况下,ln 将创建符号链接“/opt/local/bin/somsoft*”(包括名称中的星号)。这可能不是你想要的
- /opt/local/bin 已经包含与 /opt/local/somesoft/somsoft* 同名的文件。在这种情况下 ln 不会在那里创建新文件(是好是坏?这就是问题)
- 你没有 /opt/local/bin 。在这种情况下,命令失败的方式有多种(取决于您是否有 /opt/local 目录以及有多少文件与模式 /opt/local/somesoft/somsoft* 匹配)
你的第二个问题没有多大意义。/opt/local/bin 是一个目录,目录不能“调用”任何东西。所以不能阻止这样做。如果你问是否应该在那里创建符号链接,我会说为什么不。该命令背后的整个想法是
- 将 somesoft 安装到特殊目录中,这样您就不会污染 /usr/bin 或任何其他公共目录
- 为了能够运行命令而无需每次都指定完整路径 /opt/local/somesoft/somsoft... 您可能希望在 /opt/local/bin 中创建符号链接。并确保您的 /opt/local/bin 在您的目录中。