mv: Directorio no vacío

mv: Directorio no vacío

Quiero mover el contenido de un directorio dentro de otro directorio con las mismas carpetas.

He aquí un ejemplo:

Tengo ./backupel cual tiene los directorios basey test. Ahora quiero mover estos directorios a ./backupArchives.

Yo uso esto:

mv ./backup/* ./backupArchives

pero me salió el error

mv: cannot move './backup/base' to './backupsArchive/base': Directory not empty

Intenté usar --force, pero no tuve suerte. ¿Hay alguna forma de moverlo cuando ya existen carpetas?

Nota: solo quiero fusionar contenidos, no se puede sobrescribir.

Respuesta1

Aunque su página de manual no lo documenta, mvse negará a cambiar el nombre de un directorio a otro directorio si el directorio de destino contiene archivos. Esto es algo bueno en tu caso porque resulta que quieresunirel contenido de la fuente en el destino, lo cual mvno servirá.

Úselo rsync -a backup/ backupArchives/en su lugar. Después rm -rf backup/*.

En lugar de usar rsync, también puedes hacer lo clásico.

(cd backup && tar c .) | (cd backupArchives && tar xf -)

lo que te otorga más puntos geek.

Respuesta2

Rápido y sucio, si sabes lo que estás haciendo:

cp -r ./backup/* ./backupArchives && rm -R ./backup/*

Respuesta3

Después del directorio que necesita mover *(representa cualquier texto o número). Por ejemplo:

mv /var/www/* /recovery/wwwrecovery/

Eso es todo, si mueves archivos, entonces lo haces como:

mv /var/www/index.php /recovery/index.php

Otra forma es empaquetar el contenido de esa carpeta usando tar:

tar -cvzpf backup.tar.gz /var/www 

Luego muévalo a cualquier otro archivo. También recomiendo este paso porque el alquitrán lo comprime y lo hace más pequeño.

Para extraer los archivos a otra carpeta utilice

tar -xvzpf /var/www/

Si necesita copiar a una ubicación que no le pertenece, asegúrese de anteponer su comando al sudocomando después de cualquier opción que decida usar.

sudo tar -cvzpf backup.tar.gz /var/www/

Respuesta4

Seguro rsyncque funciona, pero podría funcionar también para máquinas que no lo admiten rsync(es decir, en cpanel, cuyo rsync no está instalado de forma predeterminada).

¿Qué pasa con el uso?

cd /path/to/backup/ && cp -R --parents ./* ../backupArchives

Luego elimine el backupdirectorio si es necesario.

Nota 1: Debe acceder cdal backupdirectorio antes de ejecutar elcp -R --parents ...

Nota 2: Verifique dos veces el backupArchivesdirectorio si obtuvo los archivos nuevos de la copia de seguridad.

información relacionada