Puoi trovare una serie completa di soluzioni su questo nella risposta di UNIX e Linux a Come sposti tutti i file (inclusi quelli nascosti) da una directory all'altra? . Mostra le soluzioni in Bash, zsh, ksh93, standard (POSIX) sh, ecc.
Puoi usare questi due comandi insieme:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
O tutti insieme ( grazie pfnuesel ):
mv /path/subfolder/{.,}* /path/
Che si espande a:
mv /path/subfolder/* /path/subfolder/.* /path/
(esempio: si echo a{.,}b
espande in a.b ab
)
Nota che questo mostrerà un paio di avvertimenti:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Ignorateli semplicemente: questo accade perché /path/subfolder/{.,}*
si espande anche in /path/subfolder/.
e /path/subfolder/..
, che sono la directory e la directory principale (vedere Cosa significano “.” E “..” quando ci si trova in una cartella? ).
Se vuoi solo copiare, puoi usare un semplice:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Questo copierà tutti i file, sia quelli normali che quelli nascosti, poiché si /path/subfolder/.
espande in "tutto da questa directory" (Fonte: come copiare con cp per includere file nascosti e directory nascoste e il loro contenuto? )
cp -r /path/to/source/. /destination