无法创建符号链接

无法创建符号链接

嘿伙计们我需要帮助我在终端尝试这个

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

相关内容