Como regra geral, você deve evitar analisar ls
e certamente não deve fazê-lo com for
loop que irá quebrar seus argumentos no espaço em branco (ou o que você tiver definido $IFS
para). Uma maneira melhor seria:
for i in /opt/metasploit-framework/*msf; do ln -s "$i" /usr/local/bin/; done
Se você insistir em usar ls
, uma maneira mais segura seria:
ls -1 /opt/metasploit-framework/*msf | while IFS= read -r msf; do
ln -s /opt/metasploit-framework/"$i" /usr/local/bin/; done