Відповіді:
Ви можете просто скопіювати все, за допомогою чого
cp -rf
а потім видаліть приховані каталоги в пункті призначення за допомогою
find -type d -name '.*' -and -not -name '.' -print0 | xargs -0 rm -rf
Крім того, якщо у вас є розширений дьоготь (наприклад, GNU tar), ви можете спробувати використовувати tar для виключення деяких шаблонів. Але я боюся, що неможливо виключити лише приховані каталоги, але й включити приховані файли.
Наприклад щось подібне:
tar --exclude=PATTERN -f - -c * | tar -C destination -f - -x
Btw, GNU tar має зоопарк виключає варіанти стилів. Моя улюблена
--exclude-vcs
Хорошими варіантами копіювання дерева каталогів, крім деяких файлів, є:
rsync : це в основному cp плюс тонна можливостей виключення.
rsync -a --exclude='.*' /source/ /destination
pax : він має деякі можливості виключення, і він знаходиться в POSIX, тому він повинен бути доступний скрізь (за винятком того, що деякі дистрибутиви Linux з певних причин не включають його у встановлення за замовчуванням).
cd /source && mkdir -p /destination && \
pax -rw -pp -s '!.*/\..*!!' . /destination
альтернативно cp
вам можна скористатися rsync
з --exclude=PATTERN
.