Como fazer com que o console faça eco (confirme) alguns comandos?

1

Tenho o Ubuntu instalado em várias máquinas e gostaria de replicar o comportamento do console que encontrei em uma delas em todas as minhas instalações (todas elas são 12.04, 64 e 32 bits).

Eu instalei o Ubuntu Studio 12.04 ('lowlatency') alguns meses atrás, e talvez eu tenha feito alguma coisa naquela época, talvez não tenha feito, mas eu tenho uma espécie de "eco" de todos os comandos para os quais eu acho importante ter um (como rm , rmdir , ln , cp e mv ). Eu também sou solicitado a confirmar o tipo rm de comandos, o que eu acho ótimo, mesmo que seja um pouco chato às vezes ... de qualquer forma, quando não quero ser incomodado, apenas adiciono um -f e tudo é bem.

Aqui está um exemplo com cp :

foo@bar: /tmp$ cp hello.txt world.txt
'hello.txt' -> 'world.txt'

O mesmo acontece com mv . Tenho quase certeza de que não configurei eu mesmo, então acho que é um comportamento padrão. Eu gostaria de fazer o mesmo em outras máquinas, e por que nem mesmo controlar a coisa toda manualmente e decidir quais comandos obter um eco ou não, se possível. Eu suspeito que isso tenha algo a ver com o arquivo ~/.bashrc , mas isso é o mais longe que eu posso chegar sozinho.

Como posso fazer alguns comandos ecoarem alguns comentários (como ln , cp , mv ) e outro prompt de confirmação (como rm e rmdir ) no console?

    
por Sheljohn 07.08.2013 / 09:07

1 resposta

4

Para os comandos ln , cp , mv e rmdir , você deve usar a opção -v ou --verbose . De man cp e man mv :

  -v, --verbose
          explain what is being done

De man ln :

   -v, --verbose
          print name of each linked file

De man rmdir :

  -v, --verbose
          output a diagnostic for every directory processed

Observe que você não tem nenhuma opção para receber uma confirmação ao usar rmdir , pois rmdir remove os diretórios vazios. Você pode usar rm -d com a opção -i (veja abaixo).

Para o comando rm , você deve usar a opção -i . De man rm :

   -i    prompt before every removal

Agora, se você quiser que esses comandos sejam executados com essas opções o tempo todo no terminal, você pode usar aliases. Então, adicione as seguintes linhas no final do arquivo ~/.bashrc ou no arquivo ~/.bash_aliases :

alias cp='cp -v'
alias mv='mv -v'
alias ln='ln -v'
alias rmdir='rmdir -v' #or, better for what you asked: alias rmdir='rm -id'
alias rm='rm -i'
    
por Radu Rădeanu 07.08.2013 / 09:37