Estoy trabajando en un script que copiará SOLAMENTE los archivos que se hayan creado en el último día libre en otra carpeta. El problema que tengo es el script que tengo copia todos los archivos en el directorio de origen en lugar de solo los archivos de menos de un día de antigüedad.
Esto es lo que tengo:
find . -mtime -1 -exec cp --preserve --parents -a "{}" /somefolder \;
El código anterior copia todos los archivos en el directorio fuente. Si elimino todos los argumentos para 'cp', entonces funciona:
find . -mtime -1 -exec cp "{}" /somefolder \;
El código anterior copia solo los archivos más nuevos como quiero pero necesito preservar los atributos usando los argumentos cp.
También probé variables y para bucles pensando que tal vez la opción -exec era el problema:
files="$(find -mtime -1)"
for file in "$files"
do
cp --parents --preserve -a file /somefolder
Sin embargo, lo anterior para el bucle resulta en el mismo problema, todos los archivos se copian. Si hago eco de $ files solo se muestran los archivos que necesito.
¿Cómo puedo hacer que esto funcione?
find /sourcefolder -type f -mtime -1 -exec cp -a "{}" /somefolder \;