![无法创建符号链接](https://linux22.com/image/972175/%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5.png)
嘿伙计们我需要帮助我在终端尝试这个
sudo bash -c 'for MSF in $(ls msf*); do ln -s /opt/metasploit-framework/$MSF /usr/local/bin/$MSF;done'
我得到了这个
ln:无法创建符号链接“/usr/local/bin/msfbinscan”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfcli”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfconsole”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfd”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfelfscan”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfencode”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfmachscan”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfpayload”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfpescan”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfrop”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfrpc”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfrpcd”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfupdate”:文件存在 ln:无法创建符号链接“/usr/local/bin/msfvenom”:文件存在
答案1
一般来说,你应该避免解析ls
当然,您不应该使用for
循环来执行此操作,因为循环会因为空格(或您设置的任何内容)而破坏其参数$IFS
。更好的方法是:
for i in /opt/metasploit-framework/*msf; do ln -s "$i" /usr/local/bin/; done
如果你坚持使用ls
,更安全的方法是:
ls -1 /opt/metasploit-framework/*msf | while IFS= read -r msf; do
ln -s /opt/metasploit-framework/"$i" /usr/local/bin/; done