Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

comando rm - remover w,x,y exceto z

1,526 views
Skip to first unread message

Erick Andrade

unread,
Dec 11, 2009, 8:10:02 AM12/11/09
to
Bom dia.

Quando se utiliza o comando rm com o curinga [*], como 'rm -f *', é possível especificar um arquivo como excessão, pra não ser excluído? Por exemplo:

$ rm *.mp3 -except led_zeppelin.mp3


Assim o comando removeria todos os .mp3 do diretório, exceto o arquivo led_zeppelin.mp3



Até mais!


--
[]s
Erick

Felipe Rocha

unread,
Dec 11, 2009, 8:30:01 AM12/11/09
to
Olá,

Você terá que utilizar o find em conjunção com o rm pois assim terá
como restringir a lista de arquivos a serem excluídos, tente rodar o
seguinte:

find DIR ! -name 'led_zeppelin' -print

se listar todos os arquivos desejados, acrescente o rm

find DIR ! -name 'led_zeppelin' -print -exec rm {} \;

att,
Felipe Rocha

2009/12/11 Erick Andrade <er...@bsd.com.br>:

--

PS: Ao encaminhar e-mails use SEMPRE o campo BCC ou CCO para não expor
a lista de destinatários e também APAGUE qualquer email contido no
corpo da mensagem. Estas são medidas SIMPLES para reduzir o
recebimento de SPAM.


--
To UNSUBSCRIBE, email to debian-user-por...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

hamacker

unread,
Dec 11, 2009, 8:40:02 AM12/11/09
to
Se voce usa o gnome, use o CTRL+S para fazer uma seleção (*.*) e
depois segure o control e clique para desmarcar os que não necessita.
Voce tambem pode marcar duas pastas/arquivos que não queira excluir e
depois inverter a seleção.

[]'s

2009/12/11 Erick Andrade <er...@bsd.com.br>:

Tony Baldwin

unread,
Dec 11, 2009, 9:10:02 AM12/11/09
to
hamacker wrote:
> Se voce usa o gnome, use o CTRL+S para fazer uma sele��o (*.*) e
> depois segure o control e clique para desmarcar os que n�o necessita.
> Voce tambem pode marcar duas pastas/arquivos que n�o queira excluir e
> depois inverter a sele��o.

>
> []'s
>
> 2009/12/11 Erick Andrade <er...@bsd.com.br>:
>> Bom dia.
>>
>> Quando se utiliza o comando rm com o curinga [*], como 'rm -f *', � poss�vel
>> especificar um arquivo como excess�o, pra n�o ser exclu�do? Por exemplo:

>>
>> $ rm *.mp3 -except led_zeppelin.mp3
>>
>>
>> Assim o comando removeria todos os .mp3 do diret�rio, exceto o arquivo
>> led_zeppelin.mp3
>>
>>
>>
>> At� mais!
>>
>>
>> --
>> []s
>> Erick
>>
>
>


ou eu lei errado o primeiro mensagem, ou todo mundo n�o entendeu.

Me parece que voc� quer remover tudo, com excep��o
do arquivo led-zep.mp3.
Os demais lhe dizerem como remover esse arquivo, o que, se n�o me
engano, voc� quer manter (e deve manter, sendo de led zeppelin).

Pois, o que eu faria � assim:
cd ~/pasta/de/mp3s

Primero, para segurar que todos tem a mesma extens�o
rename.ul .MP3 .mp3 *.MP3

pois, para diferenciar esse arquivo que quer manter
mv led_zeppelin.mp3 led_zep.MP3

agora ter� troce centos arquivos .mp3, mais so um de .MP3
pois, remove os .mp3

rm -f *.mp3

se quiser, renomear o arquivo em quest�o
mv led_zep.MP3 led_zeppelin.mp3


Desse jeito, todos os arquivos *.mp3 v�o pelo lixo,
menos led_zeppelin.mp3

tem outro jeito, talvez mais f�cil:

cd ~/pasta/de/mp3
mkdir savethis
mv led_zeppelin.mp3 savethis
rm -f *.mp3

o arquivo led_zeppelin.mp3 estar� em outra pasta
(~/pasta/de/mp3/savethis), pois, n�o estar� deletado.

Depois pode
cd savethis
mv led_zeppelin.mp3 ../
cd ../
rmdir savethis
agora led_zeppelin.mp3 voltou � ~/pasta/de/mp3 e a pasta extra
foi deletado.

Ainda mais f�cil, use um filemanager de gui como pcmanfm, nautilus, etc.
e selecione somente os arquivos que quer deletar.


espero que ajude
pode ser que tem algo ainda muito mais simples, mas
eu ainda n�o sou um hacker de verdade...fico aprendendo...

[]s
tony
--
http://www.baldwinlinguas.com
Translation & Interpreting

As� tambi�n, la lengua es un miembro peque�o,
y se glor�a de grandes cosas.
He aqu�, un peque�o fuego
�Cu�n grande bosque enciende!

Erick Andrade

unread,
Dec 11, 2009, 9:20:02 AM12/11/09
to
É...  eu pensei que poderia ter um operador NOT (!) no próprio rm, pois tinha muitos arquivos pra remover e só precisava manter um. Como na man-page não diz nada, resolvi perguntar.

Mas sendo assim, vou manter o find/exec na maleta de ferramentas.


Obrigado!



2009/12/11 Felipe Rocha <flap...@gmail.com>

Eli Rigobeli

unread,
Dec 11, 2009, 9:50:03 AM12/11/09
to
Muito boa a solução

find DIR ! -name 'led_zeppelin' -print -exec rm {} \;


Não sabia que era possível utilizar o NOT no find.

Abraços

Gunther Furtado

unread,
Dec 11, 2009, 10:00:01 AM12/11/09
to
Oi

<texto extirpado>

> ou eu lei errado o primeiro mensagem, ou todo mundo não entendeu.

Acho que foi fifty/fifty o sinal "!" na solução com o find funciona
como negação do termo de busca.

<texto cortado>

Abs.,

--

"...agora, só nos sobrou o futuro...", visto em www.manuchao.net

Gunther Furtado
Curitiba - Paraná - Brasil
gunfu...@gmail.com

Flamarion Jorge

unread,
Dec 11, 2009, 10:10:02 AM12/11/09
to
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Erick Andrade escreveu:
> Bom dia.
>
> Quando se utiliza o comando rm com o curinga [*], como 'rm -f *', �
> poss�vel especificar um arquivo como excess�o, pra n�o ser exclu�do? Por


> exemplo:
>
> $ rm *.mp3 -except led_zeppelin.mp3
>
>

> Assim o comando removeria todos os .mp3 do diret�rio, exceto o arquivo
> led_zeppelin.mp3

cd /pasta/onde est�o os arquivos ; for i in $(ls | grep -v "arquivo que
n�o deve ser apagado"); do rm -rfv $i ; done

Se � pra complicar vamo l�!

Att,
- --
Flamarion Jorge
OpenPGP Key: 6CA750E1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAksiYFoACgkQ0SDRnmynUOEGygCfZA5ZExrnzVHYXwyoCOvFPA5V
knQAnitoSYGQH8y2M0NRZjqtUIo40rMG
=u6x3
-----END PGP SIGNATURE-----

Lucas Salies Brum

unread,
Dec 13, 2009, 9:40:02 AM12/13/09
to
rm -i $( ls | grep -v "arquivo_mantido" | sort )
Mais rápido, mais simples, só tenho dúvidas quanto ao sort e as aspas.
Coloquei o -i pra confirmar, e não apagar nada por engano [=

Abraços.

Felipe Augusto van de Wiel (faw)

unread,
Dec 13, 2009, 4:10:02 PM12/13/09
to
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 11-12-2009 12:31, Eli Rigobeli wrote:
> Muito boa a solução
> find DIR ! -name 'led_zeppelin' -print -exec rm {} \;
>
> Não sabia que era possível utilizar o NOT no find.

Você também pode usar o -delete do find :)


find DIR ! -name 'led_zeppelin' -delete


Abraço,
- --
Felipe Augusto van de Wiel (faw)
"Debian. Freedom to code. Code to freedom!"


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkslVk0ACgkQCjAO0JDlykYfFwCglNbde21BWb7lpDQm/2zK4hR0
L1kAnRQoAc73qu6B6ZTKQGR5fVLUM+Xk
=zFOh
-----END PGP SIGNATURE-----

Lucas Salies Brum

unread,
Dec 16, 2009, 1:30:02 AM12/16/09
to
>Você também pode usar o -delete do find :)
Isso apaga o arquivo que não for igual a led_zeppelin, ou estou errado?

Paulo de Souza Lima

unread,
Dec 16, 2009, 6:20:03 AM12/16/09
to

2009/12/16 Lucas Salies Brum <siste...@gmail.com>

>Você também pode usar o -delete do find :)
Isso apaga o arquivo que não for igual a led_zeppelin, ou estou errado?


O comando completo era: find DIR ! -name 'led_zeppelin' -print -exec rm {} \;

find --> procura
DIR --> diretório
! --> inverte a lógica
-name --> procura por nome de arquivo
'led_zeppelin' --> nome do arquivo
-print --> mostra na tela tudo o que foi encontrado
-exec rm {} --> executa o comando rm no que foi encontrado
\; --> insere um caracter ";" no final de cada linha

Ele vai encontrar tudo o que *não* for 'led_zeppelin', mostrar na tela e deletar, em seguida.

Abraço.

Paulo de Souza Lima
Técnico em Eletrônica e Administrador de Empresas
Curitiba - PR
Linux User #
432358
Ubuntu User #
28729

0 new messages