mover los directorios usando el comando buscar

mover los directorios usando el comando buscar

Estoy tratando de encontrar un directorio particular en una ruta y mover el directorio a otra ruta usando buscar.

El directorio de origen se parece a continuación,

/Dir1/country1/month1/date1,date2,date3
/Dir1/country2/month1/date1,date2,date3
...
.
.
/Dir1/country10/month1/date1,date2,date3

Estoy intentando encontrar el directorio date1 y moverme al destino.

/Copia de seguridad/fuente1/Dir1/

Estoy usando el siguiente comando

[root@mytest Dir1]# buscar -nombre "fecha1" -exec mv {} /Backup/source1/Dir1/{} \;

y obtengo el siguiente error.

mv: no se pudo conservar la propiedad de `/Backup/source1/Dir1/./country1/month1/date1/date1/date1_1.txt': operación no permitida

No estoy seguro de cómo eliminar la duplicación del directorio date1 en el destino y"./"también está creando problemas.

Mis mejores deseos, KJ

Respuesta1

ElPágina de manual de Linuxestados:

mv - mover (cambiar nombre) archivos

Por lo tanto, no puede utilizar mvpara mover un directorio. Sin embargo, primero puede copiarlo y luego borrar la copia anterior. Este comando

   SRC_DIR=$(find . -type d -name date1 -print); echo $SRC_DIR

almacenará la ruta relativa al directorio que le interesa, en una variable conveniente. Ahora podemos hacer el directorio en la nueva posición,

   mkdir /Backup/source1/$SRC_DIR

siempre que tenga la autoridad para hacerlo: de hecho, el mensaje de error anterior se refiere a que no tiene privilegios suficientes para crear un nuevo archivo (debería haber sido una carpeta, pero se convirtió en un archivo debido al error anterior). ¿Está seguro de que el nuevo /Backup/dir1 le pertenece? Deberías comprobarlo y solucionarlo.

Ahora puedes copiar recursivamente todo el contenido al nuevo directorio:

   cp -R $SRC_DIR/* /Backup/dir1/$SRC_DIR
   cp -R $SRC_DIR/.[a-Z]* /Backup/dir1/$SRC_DIR

y por último, puedes borrar la copia anterior, si es necesario:

   cd $SRC_DIR
   rm -fR *
   rm -fR .[a-Z]* 

y ahora el directorio está vacío y se puede borrar.

Respuesta2

En lugar de usar move, que es una herramienta contundente, consulte rsync, que puede cambiar los árboles de directorios en modo archivo, lo que conserva los permisos y los enlaces simbólicos tanto físicos como físicos.

Además, si escribe updatedbcomo root, actualizará la locatebase de datos de archivos que se encuentran en los distintos árboles de rutas de los paquetes instalados. Binarios, páginas man y árboles fuente. Buscar con whereiso locatees mucho más rápido que realizar la búsqueda en el disco real cada vez.

información relacionada