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

Re: rm *~ -R (no funciona)



Ups. Como Iñaqui me ha hecho saber, le he enviado mi respuesta en
persona. Entre listas que modifican el Reply-To y una buena
configuración de mutt estoy muy mal acostumbrado. ^_^;

Replico el mensaje añandiendo que, combinar varias aplicaciones para
producir un resultado, es típico en la línea de comandos y no es de
por sí algo malo (e.g. se unifica el interfaz, el origen y la
corrección de errores, etc.).

Salud.

---------- Forwarded message ----------
From: Gonzalo HIGUERA DÍAZ <gonhidi@gmail.com>
Date: 26-nov-2005 14:35
Subject: Re: rm *~ -R (no funciona)
To: Iñaki <ibc2@euskalnet.net>


2005-11-26 13:42 +0100, Iñaki <ibc2@euskalnet.net>:
> El Sábado, 26 de Noviembre de 2005 13:08, Rober Morales escribió:
> || El Sábado, 26 de Noviembre de 2005 12:22, Iñaki escribió:
> || > Hola, una pregunta rápida:
> || >
> || > Tengo una carpeta con subcarpetas que contienen archivos de copias de
> || > seguridad terminados en ~.
> || > Quiero borrar todas esas copias de un plumazo pero no logro hacerlo.
> || > Intento hacer esto:
> || >
> || >   rm *~ -R
> || >
> || > pero me sale:
> || >
> || >   rm: no se puede efectuar `lstat' sobre «*~»: No existe el fichero o el
> || >   directorio
> || >
> || >
> || > Al final he logrado hacerlo usando esto:
> || >
> || >   rm $(find . -name "*~")
> || >
> || > pero me parece un poco rebuscado, ¿no se puede hacer de manera más fácil
> || > y evidente?
> || >
> || >
> || > Gracias.
> ||
> || amí si me funciona
> ||
> || no tendrás un alias???
>
> Pues sí, pero no creo que pueda afectar. Es éste:
>
>   alias rm='rm -i'
>
> (para que pregunte antes de borrar, sin más).
>
>
> Ahora he quitado por si acaso ese alias y en serio que no entiendo lo que
> pasa. Dices que te funciona, ¿podrías probar con este ejemplo que te pongo?
>
> - Creas un directorio y te metes dentro y creas 3 subdirectorios:
>
>   #ls -lF
>   drwxr-xr-x  2 ibc ibc 4096 2005-11-26 13:28 dir1/
>   drwxr-xr-x  2 ibc ibc 4096 2005-11-26 13:28 dir2/
>   lrwxrwxrwx  1 ibc ibc    8 2005-11-26 13:28 dir3 -> ../dir3//
>
> Como puedes ver, debes crear fuera de este directorio otro que se llame "dir3"
> y enlazarlo desde aquí (ln -sf ../dir3 dir3).
>
> - Luego crear en cada directorio un archivo .php:
>
>   #ls -LR
>   dir1  dir2  dir3
>
>   ./dir1:
>   aa.php
>
>   ./dir2:
>   bb.php
>
>   ./dir3:
>   cc.php
>
> - Y ahora intento borrar de un plumazo todos los .php y es que no puedo borrar
> ni uno:
>
>   #rm -R *.php
>   rm: no se puede borrar «*.php»: No existe el fichero o el directorio
>
> - De acuerdo, ¿y cómo se hace para que borre recursivamente un patrón? no me
> puedo creer que sea tan complicado, seguro que estoy cometiendo alguna
> tontería pero no la veo. Por lo que leo en el "man rm" resulta que "rm" no
> sirve para lo que pretendo (algo muy banal), ¿qué comando sería el apropiado?

Que yo sepa, la mejor opción (usando bash y las utilidades más comunes) es:

$ find . -name "*~" -exec rm {} \;

o mejor aún

$ find . -name "*~" -exec rm {} + #Llama a rm una sola vez (i.e. rm
arch1 arch2 ...)


--
Gonzalo HIGUERA DÍAZ <gonhidi@gmail.com>



Reply to: