Para hacerlo, abra una terminal y ejecute este comando:
mv -v ~/Downloads/* ~/Videos/
Moverá todos los archivos y carpetas de la carpeta Descargas a la carpeta Videos.
Para mover todos los archivos, pero no las carpetas:
Pero, si está interesado en mover todos los archivos (pero no las carpetas) de la carpeta Descargas a la carpeta Videos, use este comando
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
Para mover solo archivos de las carpetas de Descarga, pero no de las subcarpetas:
Si desea mover todos los archivos de la carpeta Descargas, pero no los archivos dentro de las carpetas de la carpeta Descargas, use este comando:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
aquí, la -maxdepthopción especifica qué tan profundo debe intentar la búsqueda profunda, es
1decir, solo el directorio especificado en el comando de búsqueda. Puedes intentar usar 2, 3también para probar.
Consulte la página de manual de búsqueda de Ubuntu para obtener una explicación detallada.
Solución
El comando encontrará todos los archivos normales en
/src/dir(incluidos todos los subdirectorios) y los moverá al/dst/dirmediante el comandomv. Simplemente reemplace los directorios por los suyos. Los archivos con los mismos nombres serán renombrados automáticamente.Seleccionar archivos para mover
Si desea mover solo archivos MP3, agregue la
-iname "*.mp3"opción alfindcomando después-type f.Comparación con la respuesta de c0dev
Solo el segundo comando en la respuesta de c0dev responde la pregunta. A continuación se muestra cómo se compara con esta respuesta. Los puntos 3. y 4. pueden resolverse en la otra respuesta de la misma manera que aquí.
mvla solución con-exec +no necesita llamar a un comando adicional comoxargsoparallely entregar los nombres de archivo dos veces.--backup=numbered. Desafortunadamente, estas copias de seguridad con sufijo como~3~estarán ocultas en la mayoría de los archivos administrados por defecto. Lamentablementemv, no permite cambiar el sufijo, pero podría procesarse fácilmente mediante comandos adicionales. Esta es una extensión de GNU.-print0-exec command {} +forma parte de los estándares IEEE Std 1003.1 (POSIX), ISO / IEC 9945 y The Single UNIX Specification. Por lo tanto, debería ser más portátil. Consulte IEEE Std 1003.1, Edición 2004 , IEEE Std 1003.1, Edición 2013 y 0000243: Agregue -print0 para "buscar" . Pero de todos modos, el-tcambio requerido demves una extensión GNU, por lo que todo el comando no es portátil entre los sistemas POSIX.Nota: En el caso
findsería capaz de producir rutas que empiezan con-(no sé de cualquier implementación definden este momento.) La{}debe ir precedida por el indicador de fin de opciones:--.fuente
{}debe ser el último argumento. CorregidoDesafortunadamente, no tengo una reputación lo suficientemente alta como para comentar sobre la solución marcada. Sin embargo, quería advertir a los demás sobre un problema que encontré. Es bastante aficionado; sin embargo, cuando está haciendo varias cosas, puede que no le venga a la mente al principio. Con suerte, ayudará a otros.
Problema
Se proporcionaron variaciones del siguiente mensaje después de iniciar el comando. El comando luego crea múltiples archivos.
Porque
El
/srces un padre de la/dst(por ejemplo/src/../dst/).Solución
Si bien puede haber una mejor solución, simplemente moví los archivos a un directorio temporal fuera de mi
/srcy luego volví a ordenar el comando para volver a colocarlos en el/src/../dstdirectorio en el que quería que terminaran.fuente
My one-liner: esto funciona en Mac pero también debería funcionar en cualquier * nix. Comience desde el directorio principal.
La primera parte mueve todo, desde todas las subcarpetas a la carpeta real desde donde inicia el comando; la segunda parte comprueba si los subdirectores están vacíos (ahora deberían :-) y los elimina para que obtenga todo aquí sin subdirectores.
fuente
-notoperador no es estándar, por lo que su comando es menos portátil que los demás.Abra el terminal, cd a su carpeta de carpetas con archivos y ejecútelos
find . -mindepth 2 -type f -print -exec mv {} . \;para mover todos los archivos de estos subdirectorios al actual.fuente