shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fw: [Dicas-L]Mais dicas de bash


From: Eriberto
Subject: Fw: [Dicas-L]Mais dicas de bash
Date: Wed, 26 Jul 2000 12:08:01 -0300

----- Original Message -----
From: "Rubens Queiroz de Almeida #200503#" <address@hidden>
To: <address@hidden>
Sent: Wednesday, July 26, 2000 1:31 AM
Subject: [Dicas-L]Mais dicas de bash


> Mais dicas de bash
> ---------------------------------------------------------------------
> Colaboração: Rodrigo Bernardo Pimentel [address@hidden]
>
> Muitas vezes é necessário, em uma linha de comando, repetirem-se
> palavras quase na íntegra, modificando-se somente um ou outro caracter.
Por
> exemplo:
>
> # cp ~/.emacs ~/.emacs.bak
>
> Ou, pior,
>
> # cp /mnt/usr/share/emacs/20.7/etc/sex.6 /usr/share/emacs/20.7/etc/sex.6
>
> (para alguém que tenha perdido o arquivo, por exemplo)
>
> Bem, para os preguiçosos, mesmo o primeiro exemplo é demais.
> Então, tentando minimizar ao máximo a quantidade de caracteres
> digitados, podemos usar um pequeno truque de bash:
>
> # cp ~/.emacs{,.bak}
>
> O que isso faz? A palavra que contem as chaves é expandida em duas
> palavras (neste caso, podem ser mais), separadas por espaço: a primeira
> contém "~/.emacs" mais o que está entre chaves, antes da primeira vírgula
> (nada); a segunda contém "~/.emacs" mais o que está depois da vírgula
> (".bak"). O resultado final, expandido pelo bash, seria
>
> # cp ~/.emacs ~/.emacs.bak
>
> Outro exemplo seria:
>
> # cat arq{1,2,3} &gt; arq.final
>
> Ou seja, o equivalente a
>
> # cat arq1 arq2 arq3 &gt; arq.final
>
> Isso funciona também no meio de da palavra, ou mesmo no começo:
>
> # cat /home/{rbp,queiroz,rms,torvalds}/.signature
> # diff {/home/rbp/.,/etc/}bashrc
>
> E, finalmente (e um pouco mais confuso), pode haver chaves dentro de
> chaves:
>
> # less
/usr/doc/{emacs-20.7/{NEWS,README},ed-0.2/NEWS,gnupg-1.0.1/{README,COPYING}}
>
> Que seria expandido para:
>
> # less /usr/doc/emacs-20.7/NEWS /usr/doc/emacs-20.7/README
/usr/doc/ed-0.2/NEWS /usr/doc/gnupg-1.0.1/README
/usr/doc/gnupg-1.0.1/COPYING
>
> ---------------------------------------------------------------------
>
> __
> Rodrigo Bernardo Pimentel &lt;address@hidden&gt;| GPG KeyID:
0x81F85A48
> LinuxSP &lt;http://www.linuxsp.org.br&gt;                | Fingerprint:
> AirGeeks &lt;http://www.airgeeks.org&gt;                 |7E62 9CA2 C95B
FC86 B334
>          &lt;http://www.conectiva.com.br&gt;             |203E C011 2E4D
81F8 5A48
> The secret of the universe is @*&^^^ NO CARRIER
> __
>
> ---------------------------------------------------------------
> As mensagens da lista Dicas-L são veiculadas diariamente
> para 9052 assinantes.
>
> Para sair ou assinar a lista Dicas-L, consulte o documento que
> se encontra em http://www.Dicas-L.unicamp.br/FAQ.html.
>
> A redistribuição desta e outras mensagens da lista Dicas-L pode
> ser feita livremente, deste que o conteúdo, inclusive esta nota,
> não sejam modificados.
> ---------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]