Não é exigido que você exclua o arquivo /usr/bin/ns para que which e exec executem automaticamente /home/me/ns-allinone-2.35/bin/ns .
Tudo o que você precisa fazer é colocar /home/me/ns-allinone-2.35/bin no seu $PATH antes de /usr/bin .
Aqui está a maneira errada de fazer isso:
export PATH="${PATH}:/home/me/ns-allinone-2.35/bin"
Nesse caso, /usr/bin (por padrão, em $PATH ) será anterior na expansão $PATH do que você deseja, portanto, você executará /usr/bin/ns quando execute ns ou which ns .
Aqui está a maneira correta de fazer isso:
export PATH="/home/me/ns-allinone-2.35/bin:${PATH}"
Agora, apenas digitar ns ou which ns apontará para o que você deseja, sem precisar excluir nada.
Atualização: Se você quiser, para evitar modificar seu $PATH em ~/.bashrc ou similar, você pode criar um wrapper de script bash em torno do seu script tcl que modifica o caminho primeiro. Algo parecido com isto:
#!/bin/bash
export PATH="/home/me/ns-allinone-2.35/bin:${PATH}"
tcl ...
Se você quiser excluir /usr/bin/ns mesmo assim , e não tiver acesso à conta root ou à capacidade de sudo (ou colocar-se no arquivo /etc/sudoers ), e /usr/bin/ns é de propriedade de root e não é gravável pelo mundo, então você está praticamente sem opções para excluir este arquivo, a menos que :
- Você pode inicializar o computador em outro sistema operacional (live CD, live USB, etc.), obter root no esse sistema operacional e excluir o arquivo;
- Você executa algum tipo de exploração ( eu não recomendo isso se você não possui a máquina! )
Basicamente, "como faço para excluir um arquivo que não tenho permissão para excluir" é uma pergunta carregada: a pergunta assume que o proprietário da máquina quer que você exclua esse arquivo, e quer para lhe dar permissão. Se o dono da máquina não é você , você não deve nem mesmo fazer esta pergunta, e nós não o ajudaremos a invadir ou invadir a máquina de outra pessoa. Seria como dizer "como dirijo esse carro na rua quando não tenho as chaves?" - sim, boa sorte com isso.