GNU/Linux >> Tutoriales Linux >  >> Linux

¿Copiar archivos modificados después de una fecha específica usando interruptores Cp?

Cuando ejecuto el comando find . -mtime -60 Obtengo la lista de archivos modificados en los últimos 60 días.

Entonces, cuando ejecuto find . -mtime -60 -exec cp {} /tmp/1 \; Puedo copiar estos archivos a un nuevo directorio para su procesamiento

Sin embargo, si quiero conservar las marcas de tiempo, no puedo copiar solo los archivos necesarios cuando ejecuto find . -mtime -60 -exec cp -LR --preserve=timestamps {} /tmp/2 \;

Lo que termina sucediendo es que TODOS los archivos en el directorio de origen se copian en lugar de solo los archivos que necesito.

¿Alguna solución aquí?

Respuesta aceptada:

Lo que sucede aquí es que cuando usas -R opción a cp y proporciona un directorio como argumento, copia todo en ese directorio. Además, esto no preservará la estructura del directorio, ya que los archivos de los directorios inferiores se copiarán directamente en /tmp/2. . Esto puede ser lo que desea (consulte la respuesta de X Tian sobre cómo hacerlo de esta manera), pero tenga cuidado si algún archivo tiene el mismo nombre, uno sobrescribirá al otro en la destino.

Para conservar la estructura del directorio, puede usar cpio :

find . -mtime -60 -print0 | cpio -0mdp /tmp/2

Si el -0 (o equivalente) no está disponible, puede hacerlo, pero tenga cuidado de que ninguno de sus nombres de archivo contenga una nueva línea:

find . -mtime -2 | cpio -mdp /tmp/2

cpio también debe admitir -L opción, aunque ojo con esto ya que en algunos casos puede provocar un bucle infinito.


Linux
  1. ¿Copiar los primeros N archivos en un directorio diferente?

  2. Vincular montar un usuario SFTP después de usar chroot

  3. Cómo copiar directorios recursivamente usando rsync mientras se excluyen archivos específicos

  4. Contando el número de archivos en un directorio usando C

  5. ¿Obtener mtime de un archivo específico usando Bash?

Cómo eliminar directorios y archivos usando Linux

Cómo copiar archivos y directorios en Linux

Cómo tar tipos de archivos específicos (extensiones) en un directorio

Cómo copiar archivos con una extensión de archivo específica recursivamente

Cómo copiar archivos en Linux usando el comando CP

¿Cómo restaurar una copia de seguridad específica de archivos/directorios usando JetBackup 5?