Re: rm *~ -R (no funciona) [SOLUCIONADO]

2005-11-26 Por tema Iñaki
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.


Más que Solucionado lo que está es comprendido el porqué funciona así.

En otro correo que acabo de mandar comentaba que por defecto los comandos 
básicos no mirar el contenido de directorios si estos están enlazados. En el 
comando ls existe la opción -L que precisamente se encarga de contemplar 
los liks a directorios como si fuesen directorios reales.

Por desgracia parece que el comando rm no incluye esta opción.


-- 
que a mí ni me va ni me viene... pero por comentar...



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Rober Morales
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???

-- 
Q:  How many journalists does it take to screw in a light bulb?
A:  Three.  One to report it as an inspired government program to bring
light to the people, one to report it as a diabolical government plot
to deprive the poor of darkness, and one to win a Pulitzer prize for
reporting that Electric Company hired a light bulb-assassin to break
the bulb in the first place.

-- 
//
//Rober Morales Chaparro
//
#include /* RMC'05 */ iostream
class saludo { public: saludo(){
std::cout  Hola; } ~saludo()
{ std::cout   Mundo! ; } } ;
int main() { saludo holamundo; }



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Iñaki
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 ibc8 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?


Gracias por cualquier ayuda y un saludo.


-- 
que a mí ni me va ni me viene... pero por comentar...



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Xavier Reina
On Sat, 2005-11-26 at 13:42 +0100, Iñaki wrote:
 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ó:
 ||  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
 |
 ||  pero me parece un poco rebuscado, ¿no se puede hacer de manera más fácil
 ||  y evidente?
 || 
 ||
 || 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).

El alias no afecta en este caso :-)


 ¿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 ibc8 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

Hay un problema, le estás diciendo que borre todas las carpetas que se
llamen *.php, mira:

[EMAIL PROTECTED]:~/Desktop/prova/test$ mkdir dirtest.php
[EMAIL PROTECTED]:~/Desktop/prova/test$ touch dirtest.php/la
[EMAIL PROTECTED]:~/Desktop/prova/test$ touch dirtest.php/la.php
[EMAIL PROTECTED]:~/Desktop/prova/test$ rm -ri *.php
rm: descend into directory `dirtest.php'? y
rm: remove regular empty file `dirtest.php/la'? n
rm: remove regular empty file `dirtest.php/la.php'? n

[EMAIL PROTECTED]:~/Desktop/prova/test$ rm -ri *.php
rm: descend into directory `dirtest.php'? y
rm: remove regular empty file `dirtest.php/la'? y
rm: remove regular empty file `dirtest.php/la.php'? y
rm: remove directory `dirtest.php'? y


 - 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?

rm sirve:
[EMAIL PROTECTED]:~/Desktop/prova/test$ rm -vri */*.php
rm: remove regular empty file `dir1/aa.php'? n
rm: remove regular empty file `dir2/bb.php'? n
rm: remove regular empty file `dir2/b.php'? n
rm: remove regular empty file `dir3/cc.php'? n

Que borre todos los ficheros *.php de todas las carpetas (v es verbose
mode, r equivale a R).

Ale :-)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Xavier Reina
On Sat, 2005-11-26 at 14:47 +0100, Xavier Reina wrote:
 On Sat, 2005-11-26 at 13:42 +0100, Iñaki wrote:
  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ó:
  ||  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

 Hay un problema, le estás diciendo que borre todas las carpetas que se
 llamen *.php, mira:

Perdon, me equivoqué, borra todos los archivos y directorios  que se
llamen *.php que estén en el directorio donde ejecutas el comando (no
únicamente las carpetas):

[EMAIL PROTECTED]:~/Desktop/prova/test$ mkdir dir.php
[EMAIL PROTECTED]:~/Desktop/prova/test$ touch prova.php
[EMAIL PROTECTED]:~/Desktop/prova/test$ touch dir.php/a
[EMAIL PROTECTED]:~/Desktop/prova/test$ touch dir.php/a.php
[EMAIL PROTECTED]:~/Desktop/prova/test$ rm -ri *.php
rm: descend into directory `dir.php'? y
rm: remove regular empty file `dir.php/a'? y
rm: remove regular empty file `dir.php/a.php'? y
rm: remove directory `dir.php'? y
rm: remove regular empty file `prova.php'? y



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Iñaki
El Sábado, 26 de Noviembre de 2005 14:47, Xavier Reina escribió:
||  - 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?
||
|| rm sirve:
|| [EMAIL PROTECTED]:~/Desktop/prova/test$ rm -vri */*.php
|| rm: remove regular empty file `dir1/aa.php'? n
|| rm: remove regular empty file `dir2/bb.php'? n
|| rm: remove regular empty file `dir2/b.php'? n
|| rm: remove regular empty file `dir3/cc.php'? n
||
|| Que borre todos los ficheros *.php de todas las carpetas (v es verbose
|| mode, r equivale a R).

Humm, se acerca pero sigue sin ser válido, porque esa solución (*/*.php) sólo 
sirve para borrar ficheros .php que se encuentren en una subcarpeta de la 
carpeta actual. Pero no valdría para este caso:


ibc@ ~/pruebas/DIR2 $ ls -lRL
.:
total 12K
-rw-r--r--  1 ibc ibc0 2005-11-26 15:08 00.php
drwxr-xr-x  2 ibc ibc 4,0K 2005-11-26 15:05 dir1
drwxr-xr-x  3 ibc ibc 4,0K 2005-11-26 15:05 dir2
drwxr-xr-x  2 ibc ibc 4,0K 2005-11-26 15:05 dir3

./dir1:
total 0
-rw-r--r--  1 ibc ibc 0 2005-11-26 15:05 aa.php

./dir2:
total 4,0K
-rw-r--r--  1 ibc ibc0 2005-11-26 15:05 bb.php
drwxr-xr-x  2 ibc ibc 4,0K 2005-11-26 15:05 subdir2

./dir2/subdir2:
total 0
-rw-r--r--  1 ibc ibc 0 2005-11-26 15:05 sub_bb2.php

./dir3:
total 0
-rw-r--r--  1 ibc ibc 0 2005-11-26 15:05 cc.php



En este caso si hago:
  rm -ri */*.php
sólo borraría:
  dir1/aa.php
  dir2/bb.php
  dir3/cc.php
y no borraría:
  00.php
  dir2/subdir2/sub_bb2.php


Lo compruebo:

ibc@ ~/pruebas/DIR2 $ rm -ri */*.php
rm: ¿borrar el fichero regular vacío «dir1/aa.php»? (s/n) n
rm: ¿borrar el fichero regular vacío «dir2/bb.php»? (s/n) n
rm: ¿borrar el fichero regular vacío «dir3/cc.php»? (s/n) n



Empiezo a asumir que la única forma es mediante una tubería o similar usando 
find y rm conjuntamente, como me han mencionado en otro correo. El 
problema es que find no busca dentro de un directorio si ese directorio 
está enlazado.


Gracias de todas formas y un saludo  ;)



-- 
que a mí ni me va ni me viene... pero por comentar...



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Gonzalo HIGUERA DÍAZ
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 [EMAIL PROTECTED]
Date: 26-nov-2005 14:35
Subject: Re: rm *~ -R (no funciona)
To: Iñaki [EMAIL PROTECTED]


2005-11-26 13:42 +0100, Iñaki [EMAIL PROTECTED]:
 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 ibc8 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 [EMAIL PROTECTED]



Re: rm *~ -R (no funciona)

2005-11-26 Por tema sgeliway

On Sat, 26 Nov 2005 12:22:54 +0100, Iñaki [EMAIL PROTECTED] said:
 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:


Yo hago

#rm -Rf /carpeta 

y funciona muy bien... y si da lata, lo hago como root y se acabó.
--

Saludos
Juan Carlos

--
Los hombres de verdad usan GNU/Linux y creen en Jesucristo
--
Usuario GNU/Linux #376074
Maquina #274124
--
http://www.fastmail.fm



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Iñaki
El Sábado, 26 de Noviembre de 2005 15:28, [EMAIL PROTECTED] escribió:
|| On Sat, 26 Nov 2005 12:22:54 +0100, Iñaki [EMAIL PROTECTED] said:
||  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:
||
|| Yo hago
||
|| #rm -Rf /carpeta
||
|| y funciona muy bien... y si da lata, lo hago como root y se acabó.


Borrar todo la carpeta no es lo que pretendo, creo que en la pregunta inicial 
está bastante claro lo que busco.

Gracias no obstante.




-- 
que a mí ni me va ni me viene... pero por comentar...



Re: rm *~ -R (no funciona)

2005-11-26 Por tema Rober Morales
El Sábado, 26 de Noviembre de 2005 13:42, Iñaki escribió:
 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 ibc8 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?


he comprobado que lo que dices es cierto...
pero, aún no sé cómo hacerlo bien, usando solo rm


 Gracias por cualquier ayuda y un saludo.

-- 
Añadir mas trabajo a un proyecto informático que va atrasado, lo
atrasará mas.
-- Ley de Brook. 

-- 
//
//Rober Morales Chaparro
//
#include /* RMC'05 */ iostream
class saludo { public: saludo(){
std::cout  Hola; } ~saludo()
{ std::cout   Mundo! ; } } ;
int main() { saludo holamundo; }