quinta-feira, 11 de novembro de 2010

Criando / Alterando apelidos de comandos no Linux

Talvez você já tenha enfrentado a seguinte situação, você digita um comando com suas opções esperando que ele faça exatamente o que diz no manual, mas ao invés de fazer o que a sintaxe diz, parece que as opções são ignoradas.

Isso acontece quando um comando possui um apelido e suas opções pré-definidas no /root, mais especificamente em um arquivo chamado .bashrc. Dentro deste arquivo existem apelidos para os comandos de forma que sempre faça o que foi definido. Veja o exemplo abaixo:


[root@localhost ~]# cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’
Podemos ver que os comandos rm, cp e mv estão com a opção -i forçada, isso faz com que sempre seja solicitado confirmação ao executar estes comandos, mesmo se você for ROOT e mesmo se você utilizar alguma flag que force a execução do comando.

Colocando a linha do comando cp como comentário a confirmação forçada deixará de existir:
#alias cp=’cp -i’
Feito isso, é necessário entrar novamente no sistema como root e os apelidos serão recarregados. O comando a seguir pode ser utilizado para atualizar uma estrutura de pastas, ou seja copiar um material novo para uma estrutura já existente, descendo nível a nível entre as pastas.

[root@linux]# cp -prf /tmp/novaspastas/* /pastasexistentes/

As opções usadas no comando são:
-p = preserva permissões, data e hora
-r = cópia recursiva
-f = força a cópia sem pedir confirmação (antes ignorada pelo apelido do comando)

Após a cópia, tudo que estiver no /tmp/novaspastas pode ser removido conforme abaixo:

[root@linux]# rm -rf /tmp/novaspastas/*


Até a próxima.

Nenhum comentário:

Postar um comentário