cp -r без скрытых файлов


89

У меня два каталога и один пустой.

В первом каталоге есть много подкаталогов со скрытыми файлами. Когда я cp -rперехожу из первого каталога во второй, скрытые файлы тоже копируются. Какие-нибудь решения, чтобы избежать их?


это выполнимо, но удалить их после копии может быть проще
Кароли Хорват

6
да, но в моем случае копирование скрытых файлов в другие места представляет собой угрозу безопасности.
Rahul

Ответы:


127

Вы можете использовать rsync:

rsync -av --exclude=".*" src dest

1
Какие-либо накладные расходы по сравнению с cp?
Rahul

2
@Rahul Мне не приходило в голову провести сравнительный анализ, но я думаю, вам не стоит об этом беспокоиться
Евгений Ярмаш

3
Работает круто! Спасибо чувак! Для информации, rsync будет отличным решением, когда размер файла большой, но равен cp в случае файлов меньшего размера.
Rahul

26

Ты можешь сделать

cp -r SRC_DIR/* DEST_DIR

чтобы исключить все файлы .files и .dirs на уровне SRC_DIR, но при этом все скрытые файлы будут скопированы в подкаталоги следующего уровня.


6
Именно в этом-то и проблема .. :)
Рахул

9
Но это работает для GIT-Repos, если вы не хотите копировать весь GIT-Index в .git / ...
Седат Килинч

1
Я + дал этот ответ, потому что это решение, которое я искал. Я не хочу исключать все невидимое наверху дерева, только невидимое на корневом уровне!
l008com

Другой вариант cp SOURCE/[!.]* TARGET.
Карел

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.