Ви можете знайти повний набір рішень щодо цього у відповіді UNIX та Linux на тему: Як переміщувати всі файли (включаючи приховані) з одного каталогу в інший? . Він показує рішення в Bash, zsh, ksh93, standard (POSIX) sh тощо.
Ви можете використовувати ці дві команди разом:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
Або всі разом ( спасибі pfnuesel ):
mv /path/subfolder/{.,}* /path/
Що розширюється на:
mv /path/subfolder/* /path/subfolder/.* /path/
(Приклад: echo a{.,}b
розгортається до a.b ab
)
Зверніть увагу, це покаже пару попереджень:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Просто ігноруйте їх: це трапляється тому, що /path/subfolder/{.,}*
також розширюється до /path/subfolder/.
та /path/subfolder/..
, які є каталогом та батьківським каталогом (Дивіться, що означають "." Та "..", коли знаходяться в папці? ).
Якщо ви хочете просто скопіювати, ви можете використовувати просто:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Це скопіює всі файли, як звичайні, так і приховані, оскільки /path/subfolder/.
розширюється на "все з цього каталогу" (Джерело: Як скопіювати за допомогою cp, щоб включити приховані файли та приховані каталоги та їх вміст? )
cp -r /path/to/source/. /destination