Respuestas:
Con la carpeta llamada 'myfolder' y un nivel superior en la jerarquía de archivos (el punto que desea que se coloque), el comando sería:
mv myfolder/* .
Entonces, por ejemplo, si los datos estaban /home/myuser/myfolderallí, /home/myuser/ejecute el comando.
.*. Eliminar la carpeta original es trivial y no se solicita, por lo que dejaremos que OP se encargue de eso.
*y .*en una línea? solo curiosidad
mvTodos los argumentos para serán fuentes excepto el ÚLTIMO argumento que debe ser el objetivo para mover (y en el caso de múltiples fuentes, debe ser una carpeta).
/bin/mv: Argument list too long
Solo para aclararlo, tomado de la respuesta de Rudu anterior, y de los comentarios.
Si necesita mover todo el contenido, INCLUIDOS los archivos que comienzan con a. (como .htaccess, .git, etc.), debe incluir tanto * como. * en su comando. Al igual que:
mv subfolder/* subfolder/.* .
Eso moverá el contenido de la subcarpeta a su carpeta actual. Tenga en cuenta el espacio antes del último ".".
mv: rename fake/. to ./.: Invalid argumentymv: rename fake/.. to ./..: Invalid argument
Esto es posible con los siguientes métodos:
Utilizando rsync:
rsync -vua --delete-after foo/ .Usando cpy rmdir:
cp -vaR foo/. . && rmdir foo/Usando mv(con la dotglobopción habilitada):
shopt -s dotglob # Includes filenames beginning with a dot.
mv -- foo/* . # Where foo/ is the folder consisting the files.
shopt -u dotglob # Disables previously enabled dotglob option.
dónde foo/está tu carpeta cuyo contenido se va a mover un nivel hacia arriba.
Ver: help shopty man bash.
Usando mv(como se sugiere aquí ):
mv foo/* foo/.[^.]* . && rmdir foo/
Nota: Perdería un archivo llamado foo/..bar...
Nota: Para los shells POSIX, necesita [!.].
-v, -u, -ay -rhaciendo? AFAICT, -ves detallado, lo que hace que rsync imprima más información. -usignifica actualización: solo copie un archivo si es más nuevo. Eso no parece relevante. -asignifica archivo. Eso copiará el propietario y los permisos del archivo, y hará que la sincronización sea recursiva. -rsignifica recursivo, pero eso ya está cubierto por -a.
-ues útil cuando no desea pasar más tiempo moviendo datos que ya están allí (especialmente para dispositivos de almacenamiento lento). He eliminado -r, ya que está cubierto por -alo que mencionaste.
mv foo/* foo/.[^.]* .echaría de menos un archivo llamado foo/..bar..por ejemplo. Tenga en cuenta que para shells POSIX, necesita [!.].
rsync -vua --delete-after foo/ .elimina todo lo demás que ya podría existir en el directorio actual.
solo emita un comando mv
mv (directory)/* .
si desea eliminar el directorio, agregue
rm -rf (directory)
Se supone que está en un directorio padre de (directorio)
Si estás dentro del (directorio) entonces
mv * ../
.DS_storeen macOS. El mvcomando anterior no los moverá (sin dotglobestablecer).
para aquellos de ustedes en un servidor compartido tendrían que usar algo como esto
Para mover los archivos
mv -v ~/public_html/public_html/* ~/public_html/
Para copiar los archivos
cp -a ~/public_html/public_html/* ~/public_html/
.*no solo*si el archivo contiene archivos de puntos. Agregue también `&& rmdir myfolder` al final o para eliminar la carpeta ahora extraña. Esto se guarda porque solo se ejecutará si el mv devuelve el éxito Y porque rmdir no eliminará un directorio no vacío.