Primero almacenaría la lista de archivos temporalmente y usaría un bucle.
find . -mtime -90 -ls >/tmp/copy.todo.txt
Puede leer la lista, si no es demasiado grande, con
for f in `cat /tmp/copy.todo.txt`;
do echo $f;
done
Nota:las comillas alrededor de cat... son acentos graves, a menudo en la esquina superior izquierda del teclado.
Luego puede reemplazar el comando de eco con un comando de copia:
for f in `cat /tmp/copy.todo.txt`;
do cp $f /some/directory/
done
También se puede seleccionar la fecha y la hora exactas además de retroceder a una determinada cantidad de días:
cp `find . -type f -newermt '18 sep 2016 20:05:00'` FOLDER
Lo anterior copia todos los archivos en el directorio que se crearon después del 18 de septiembre de 2016 a las 20:05:00 en el FOLDER
(tres meses antes de hoy :)
Tenga cuidado con el símbolo del comando de búsqueda. No es no este:'
Es esto, un acento grave:`
La selección de fecha es con esto:'
Si tiene archivos con espacios, saltos de línea, tabuladores o comodines en sus nombres, puede usar cualquiera de las soluciones de Stéphane Chazelas. El primero es para GNU y el segundo es para GNU o algunos BSD:
find . -type f -newermt '18 sep 2016 20:05:00' -exec cp -t FOLDER {} +
find . -type f -newermt '18 sep 2016 20:05:00' -exec sh -c 'cp "[email protected]" FOLDER' sh {} +
Usa este comando:
for i in `ls -lrt | grep "jul" | awk '{print $9}' `; do cp $i* /some/folder/; done
Usa el -exec
opción para find
:
find . -mtime -90 -exec cp {} targetdir \;
-exec
copiaría todos los resultados devueltos por find
al directorio especificado (targetdir
en el ejemplo anterior).