varios todos renombrar pegar otro mover los eliminar ejemplos directorio desde copiar comandos basicos archivos archivo linux command-line mv

renombrar - mover todos los archivos de un directorio a otro en linux



Comando Linux para mover un directorio (5)

Mi antiguo y nuevo directorio tienen las mismas carpetas y archivos dentro.

Lo intento:

mv -if old/* new/*

y obtener error

mv: no se puede mover `./xxxxxx ''a un subdirectorio de sí mismo

¿Cómo puedo moverlo?


Debe usar mv -if old/* new/ sin el final * .

Esto es porque se desenrolló a

mv -if old/foo old/bar old/baz new/foo new/bar new/baz

es decir, mover todo a nuevo / baz

Esto no es lo que querías.


Puede que tengas la respuesta, pero la respuesta anterior no funciona para mí ... y, finalmente, un montón de investigaciones obtuve la respuesta. (El problema se debe a la propiedad de los archivos)
y simplemente ponga sudo antes del comando y está funcionando ... :) Lo mismo para el comando cp y mv.

sudo mv -if old/* new/


Si está copiando desde un sistema de archivos ext2 / 3/4 a un sistema de archivos FAT32, y un nombre de archivo tiene un carácter no válido para las convenciones de nombres de FAT32, aparece este mensaje de error terriblemente molesto e incorrecto. ¿Cómo puedo saber? Luché contra este insecto, sí, es un ERROR DEL KERNEL, durante 6 horas antes de que se me ocurriera. Pensé que era un error de intérprete de shell, pensé que era un error "mv", probé varios shells diferentes, todo. Pruebe este experimento: en un sistema de archivos ext, "toque ''a: b''" ellos "mv" a un sistema de archivos FAT32. Pruébalo, disfrutarás (odiarás) los resultados. Lo mismo es cierto para ''<'' y ''>'' (/ 074 y / 076).

Gracias por "man mv": es una gran ayuda, no renuncie a su trabajo diario.


tenga en cuenta que mv a / * b / no mueva archivos. * (el nombre del archivo comienza con ''.'') en a / to b /

ex:

$ mkdir -p a/d b && touch a/f a/.f a/d/.f $ mv a/* b/ $ ls -a a/ . .. .f


reef@localhost:/tmp/experiment$ ls a 11 22 33 reef@localhost:/tmp/experiment$ ls b 22 33 reef@localhost:/tmp/experiment$ ls a b reef@localhost:/tmp/experiment$ mv a/* b reef@localhost:/tmp/experiment$ ls a reef@localhost:/tmp/experiment$ ls b 11 22 33

Funciona. ¿Qué estás intentando lograr? ¿Podría escribir un breve ejemplo de cómo deberían ser los datos de entrada y cómo deberían ser los datos de salida? La verdad es que no tengo idea de lo que estás tratando de hacer :) Ayúdame a ayudarte.