Puede encontrar un conjunto completo de soluciones al respecto en la respuesta de UNIX y Linux a ¿Cómo se mueven todos los archivos (incluidos los ocultos) de un directorio a otro? . Muestra soluciones en Bash, zsh, ksh93, estándar (POSIX) sh, etc.
Puede usar estos dos comandos juntos:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
O todos juntos ( gracias pfnuesel ):
mv /path/subfolder/{.,}* /path/
Que se expande a:
mv /path/subfolder/* /path/subfolder/.* /path/
(ejemplo: se echo a{.,}b
expande a a.b ab
)
Tenga en cuenta que esto mostrará un par de advertencias:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Simplemente ignórelos: esto sucede porque /path/subfolder/{.,}*
también se expande a /path/subfolder/.
y /path/subfolder/..
, que son el directorio y el directorio principal (consulte ¿Qué significan "." Y ".." cuando están en una carpeta? ).
Si solo desea copiar, puede usar un simple:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Esto copiará todos los archivos, tanto los normales como los ocultos, ya que se /path/subfolder/.
expande a "todo lo de este directorio" (Fuente: ¿Cómo copiar con cp para incluir archivos ocultos y directorios ocultos y su contenido? )
cp -r /path/to/source/. /destination