Me gustaría saber cómo puedo mover todos los archivos de una carpeta a otra carpeta con una línea de comando.
Digamos que estoy en mi carpeta de Descargas y hay 100 archivos que me gustaría mover a mi carpeta de Videos, sin tener que escribir el nombre de todos los archivos.
command-line
Miguel
fuente
fuente
files
pero las personas te muestran cómo hacerlo no solofiles
sinofolders
también. ¿Eso esta bien?Respuestas:
Abra una terminal y ejecute este comando:
Moverá todos los archivos y carpetas de la carpeta Descargas a la carpeta Videos.
Para mover todos los archivos, pero no las carpetas:
Si está interesado en mover todos los archivos (pero no las carpetas) de la carpeta Descargas a la carpeta Videos, use este comando
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:
aquí, la
-maxdepth
opción especifica qué tan profundo debe intentar la búsqueda profunda, es1
decir, solo el directorio especificado en el comando de búsqueda. Puedes intentar usar2
,3
también para probar.Consulte la página de manual de búsqueda de Ubuntu para obtener una explicación detallada
fuente
-print0 | xargs -0 mv -t ~/Videos
puede hacer de manera más eficiente con-exec mv -t ~/Videos \{\} \+
:-)mv -v ~/Downloads/* ~/Videos/
no funciona para archivos ocultosMoverá todos los archivos, incluidas las subcarpetas, en el directorio que desee
mv
. Si deseacp
(copiar) orm
(eliminar) necesitará la-r
opción (recursiva) para incluir subcarpetas.fuente
mv
no necesita una opción recursiva para incluir subcarpetas. Se puede usar también para renombrar.Para el caso simple:
Si también quiere mover archivos dot (ocultos), configure la opción de shell dotglob .
Esto deja establecida la opción de shell.
Para usar dotglob una vez, ejecute los comandos en una subshell:
fuente
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
solo mueve (corta) el contenido (incluidos los archivos ocultos). En este caso, las carpetas de origen y de destino ya deben existir. Al final, el directorio de origen queda vacío.Es posible usando
rsync
, por ejemplo:dónde:
Si tiene privilegios de root, prefije con
sudo
para anular posibles problemas de permisos.fuente
Utilizar
Espero que esto ayude. Porque tuve el mismo dolor y perdí mucho tiempo arreglando mi error.
fuente
Para mover un directorio con o sin contenido a su nuevo nombre, tal como usaría el
mv
comando para cambiar el nombre de un archivo:mv -T dir1 dir2
dónde:
-T
trata el destino como un archivo normaldir1
es el nombre original del directoriodir2
es el nuevo nombre del directorioNB:
dir2
no tiene que existir.Espero que esto ahorre mucho tiempo a alguien, como novato, antes de esto, crearía un directorio con el nuevo nombre y luego movería el contenido del directorio al directorio creado anteriormente.
Uso para subdirectorios
Este comando es útil cuando se han guardado muchos archivos en una subcarpeta del directorio de destino, es decir
Downloads/mp4
. En este ejemplo, la ejecuciónmv -T Downloads/mp4 Videos
dará como resultado la eliminación de lamp4
subcarpeta y todos los archivos contenidos dentro se moverán a la carpeta Videos.fuente
dir1
que se elimine. Además de esta precaución, esta respuesta ha notado algo bueno para el uso diario.mv fileA fileB
pero la-T
bandera en este caso trata el directorio / destino como un archivo y lo renombra.cd folderNamehere
pwd
. Esto imprimirá el directorio que desea mover también.cd folderNamehere
mv *.* typeAnswerFromStep2here
Eso moverá todos los archivos de ese directorio al otro.
fuente
foo.txt
,bar.
ybar
tantobar.
ybar
no se moverá. Usar en*
lugar de*.*
se encarga de eso. Pero en ambos casos, los archivos ocultos como:.foobar
no se moverán.aquí debe colocar una barra diagonal y una
*
ruta posterior a la fuente para que tome los archivos dentro de source_path en lugar del directorio fuente completo.Ejemplo:
mv /home/username/test/* /home/username/test2/
El comando anterior mueve todos los archivos (a menos que estén ocultos) en el directorio de origen al directorio de destino.
fuente
intentalo
-type con el argumento -type puede especificar el tipo file.on esta declaración que es el archivo medio. si usa -d que significa directorio.
-iname: el método más común y obvio para buscar un archivo es usar su argumento -name. si no está seguro de su distinción entre mayúsculas y minúsculas, puede usar el argumento -iname
mv {} y finalmente especificar el directorio de destino y luego mover los archivos allí usando el argumento mv {}
fuente