Mover el contenido de la carpeta a un nivel

Tengo un directory que está desempaquetado, pero está en una carpeta. ¿Cómo puedo mover los contenidos de un nivel? Estoy accediendo a CentOS a través de SSH.

Con la carpeta llamada 'myfolder' y un nivel superior en la jerarquía de files (el punto que quiere que se ponga) el command sería:

mv myfolder/* . 

Entonces, por ejemplo, si los datos estaban en /home/myuser/myfolder desde /home/myuser/ ejecuta el command.

Esto es posible con los siguientes methods:

  • Usando rsync :

     rsync -vua --delete-after foo/ . 
  • Usando cp y rmdir :

     cp -vaR foo/. . && rmdir foo/ 
  • Usando mv (con la opción dotglob 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. 

    donde foo/ es su carpeta cuyo contenido debe moverse un nivel arriba.

    Ver: help shopt y man bash .

  • Usando mv (como se sugiere aquí ):

     mv foo/* foo/.[^.]* . && rmdir foo/ 

    Nota: Perderá un file llamado foo/..bar..

    Nota: Para los shells POSIX, necesita [!.] .

Solo para dejarlo en claro, tomado de la respuesta anterior de Rudu, y los comentarios.

Si necesita mover todos los contenidos, INCLUYENDO files que comienzan con a. (como .htaccess, .git, etc.), debe include tanto * como. * en su command. Al igual que:

  mv subfolder/* subfolder/.* . 

Eso moverá los contenidos de la subcarpeta a su carpeta actual. Tenga en count el espacio antes del último ".".

solo emita un command mv

 mv (directory)/* . 

si desea eliminar el directory, agregue

 rm -rf (directory) 

Se supone que está en un directory principal de (directory)

Si estás dentro del (directory) entonces

 mv * ../ 

para aquellos de ustedes en un server compartido tendrían que usar algo como esto

Para mover los files

mv -v ~/public_html/public_html/* ~/public_html/

Para copyr los files

cp -a ~/public_html/public_html/* ~/public_html/