Obszerny zestaw rozwiązań tego problemu można znaleźć w odpowiedzi na pytanie dotyczące systemów UNIX i Linux na temat: Jak przenieść wszystkie pliki (w tym ukryte) z jednego katalogu do drugiego? . Pokazuje rozwiązania w Bash, zsh, ksh93, standard (POSIX) sh itp.
Możesz używać tych dwóch poleceń razem:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
Lub wszyscy razem ( dzięki pfnuesel ):
mv /path/subfolder/{.,}* /path/
Który rozszerza się do:
mv /path/subfolder/* /path/subfolder/.* /path/
(przykład: echo a{.,}b
rozwija się do a.b ab
)
Zwróć uwagę, że spowoduje to wyświetlenie kilku ostrzeżeń:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Po prostu je zignoruj: dzieje się tak, ponieważ /path/subfolder/{.,}*
rozwija się również do /path/subfolder/.
i /path/subfolder/..
, które są katalogiem i katalogiem nadrzędnym (zobacz: Co oznaczają „.” I „..”, gdy znajdują się w folderze? ).
Jeśli chcesz po prostu skopiować, możesz użyć zwykłego:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Spowoduje to skopiowanie wszystkich plików, zarówno zwykłych, jak i ukrytych, ponieważ /path/subfolder/.
rozwija się do „wszystkiego z tego katalogu” (Źródło: Jak skopiować za pomocą cp, aby uwzględnić ukryte pliki i ukryte katalogi oraz ich zawartość? )
cp -r /path/to/source/. /destination