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.