Script para copiar los ficheros de salida del find a un directorio

Forums: 

Hola amigos.

Mi cuestión es la siguiente.
Tengo un directorio /origen con una serie de datos que también están en el directorio /destino a modo de backup.
Mi intención es listar los ficheros modificados en las últimas 24 horas con find /origen -mtime 0 y esa salida redirigirla a cp para que me copie esos ficheros en /destino. He intentado hacerlo con | xargs pero no he sido capaz.
¿Es esta la mejor manera de hacer lo que quiero, o puedo utilizar otro comando para ello?.

Un saludo a todos.

ya me decia

Imagen de iknaxio

Ya me decia el sabado leete un poco mas el 'man find'. Osea que para hacer esto:

#!/bin/sh
find /home -name .openwebmail>todos.txt
FILE_OWM=`cat todos.txt`
for usr in $FILE_OWM
do
rm -rfv $usr
done

find /home -name mail-trash>todos2.txt
FILE_OWM=`cat todos2.txt`
for usr in $FILE_OWM
do
>$usr
done

rm -f todos.txt
rm -f todos2.txt

Solo necesito 3 lineas:

#!/bin/sh
find /home -name .openwebmail -exec rm -rf {} \;
find /home -name mail-trash -exec >{} \;

Vaya cosa }:)

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

creo que no es asi

Imagen de iknaxio

Creo que no son asi mis lineas find, voy a seguir revisando.

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

find /home -name

Imagen de rafael


find /home -name .openwebmail -exec rm -rf {} \;

Este línea me parece correcta. Vas a buscar todos los archivos con el nombre .openwebmail y los vas a eliminar. Te recomiendo que mientras estes probando el script utilices -ok en lugar de -exec. Los 2 hacen lo mismo, pero el -ok te pregunta si quierse ejecutar el comando, mientras que -exec ejecuta nomás los camandos cada vez que encuentra un archivo.


find /home -name mail-trash -exec >{} \;

Aquí si no entiendo para nada lo que que quieres hacer.

Saludos,

Rafael

Saludos,

Rafael

en la version original

Imagen de iknaxio

La primera linea elimina la carpeta de configuracion del openwebmail y la segunda 'vacia' la papelera de todos mis usuarios. Lo raro es que a mi no me funciono la version simplificada asi que por el momento trabajo con mi 'super script' jeje, otro rato seguimos revisando, mañana para ser exactos.

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

Probe la primera línea con

Imagen de rafael

Probe la primera línea con una sola carpeta que cree para pruebas y me dió error, aunque si borró el archivo. Así que redireccione la salida estandar a /dev/null. No acabo de entender bien porque se da el error, pero creo que tiene que ver con borrar directorios y no archivos. No se si sea la solució pero:

find /home -name .openwebmail -exec rm -rf {} \; 2> /dev/null

Por otro lado la segunda línea funciona chévere si le añades la palabra echo.

find /home -name mail-trash -exec echo > {} \;

Yo no sabía que se podía vaciar un archivo como tu lo estabas haciendo. Funciona bien en el shell, pero dentro de find da algún problemilla. Avisa como te va con el script simplificado ;)

Saludos,

Rafael

Saludos,

Rafael

automatizacion de tareas con find

Imagen de acl

El error que se da es que no encuentra el archivo o directorio. Esto es normal por la siguiente razon: find hace una busqueda recursiva de arriba hacia abajo en el directorio indicado y ejecuta la accion al momento de encontrar el archivo que tenga esas caracteristicas. Si por desgracia lo que quieres borrar es un directorio (como en tu ejemplo), find lo encuentra primero, luego lo borra y por ultimo intenta entrar al directorio (pues es una busqueda recursiva). Entrar a un directorio que ya no existe es lo que da el error.

No se preoucupen mucho por eso, la solucion de rafael de mandar el error estandar al agujero negro es lo que necesitas.

Gracias

Imagen de iknaxio

Gracias por la información, ya funciono el script 8) esto de la programación shell te ahorra cantidad de tiempo ;)

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

Find script

Hola amigos.

Muchas gracias por la ayuda, me ha sido muy útil.

Estoy poniéndome las pilas con shell scripting, ya que como bien dice iknaxio te ahorra mucho tiempo y te facilita las cosas. Es algo imprescindible cuando se quiere sacar partido a nuestros sistemas.

La verdad es que da gusto con gente como la de esta comunidad. Hace poco que conozco Ecualug y mi experiencia aquí es excelente. Espero colaborar en la medida de lo posible y dentro de mis limitaciones poder aportar algo útil.

Salu2.