Puede probar este proceso alternativo: permanecer en el camino
/myuser/downloads/
pero, en lugar de crear primero el /myuser/downloads/new/
directorio, en lugar de crear una carpeta en el /myuser/
directorio, con el comando mkdir ../new
, a continuación, mover todos los archivos en downloads
a new
, y finalmente moverse new
en downloads
. Puede hacer esto en una línea, mientras está en la /myuser/downloads/
ruta, con el comando:
mkdir ../new && mv * ../new && mv ../new ../downloads
En este caso, usted no tiene que preocuparse por ningún tipo de "filtrado" de archivos / carpetas, ya que new
está en el mismo nivel de la ruta como downloads
, lo que sólo puede mover todo en downloads
a new
, y luego pasar new
a downloads`.
Sin embargo, si ya tiene la subcarpeta new
creada y no desea crear otra, no se preocupe, simplemente cambie el mkdir
comando en el lado izquierdo del primero &&
en el comando que se muestra arriba a un mv
comando, empujando hacia new
arriba en el camino; en otras palabras, mientras todavía estás dentro /myuser/downloads/
, puedes cambiar mkdir ../new
a mv new ..
. Luego, la subcarpeta new
[en el camino /myuser/downloads/new/
] se empuja hacia arriba /myuser/new/
, al mismo nivel que /myuser/downloads/
, y luego puede ejecutar el resto del comando como se muestra arriba. Todos juntos, tenemos, comenzando desde el camino /myuser/downloads/
:
mv new .. && mv * ../new && mv ../new ../downloads
y, como quería "mover todos los archivos y carpetas / subcarpetas de la carpeta de descargas a la subcarpeta [ new
]", ¡ya está! Si hubiera querido mover solo archivos (o solo carpetas o [insertar movimiento de objetos más granular]), entonces tendría que usar otros comandos que pueden "filtrar" objetos, como grep
. Sin embargo, los comandos escritos anteriormente son suficientes para sus propósitos.
mv * new
embargo, se quejan "no se puede mover a la nueva nueva" o algo similar. Quizásmv -i * new
para evitar sobreescrituras.