Tengo un directorio que está desempaquetado, pero está en una carpeta. ¿Cómo puedo subir el contenido un nivel? Estoy accediendo a CentOS a través de SSH.
127
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.
.*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..*. 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 curiosidadmvTodos 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 longSolo 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:
Eso moverá el contenido de la subcarpeta a su carpeta actual. Tenga en cuenta el espacio antes del último ".".
fuente
mv: rename fake/. to ./.: Invalid argumentymv: rename fake/.. to ./..: Invalid argumentEsto es posible con los siguientes métodos:
Utilizando
rsync:Usando
cpyrmdir:Usando
mv(con ladotglobopción habilitada):dónde
foo/está tu carpeta cuyo contenido se va a mover un nivel hacia arriba.Ver:
help shoptyman bash.Usando
mv(como se sugiere aquí ):Nota: Perdería un archivo llamado
foo/..bar...Nota: Para los shells POSIX, necesita
[!.].fuente
-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 llamadofoo/..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
si desea eliminar el directorio, agregue
Se supone que está en un directorio padre de (directorio)
Si estás dentro del (directorio) entonces
fuente
rmdirqueja y se cierra si el directorio no está vacío, mientrasrm -rque simplemente lo habría eliminado y todo su contenido. (Es un poka-yoke .).DS_storeen macOS. Elmvcomando anterior no los moverá (sindotglobestablecer).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/fuente