cp -r bez ukrytych plików


89

Mam dwa katalogi i jeden jest pusty.

Pierwszy katalog zawiera wiele podkatalogów z ukrytymi plikami. Kiedy cp -rzawartość z pierwszego katalogu do drugiego, ukryte pliki również są kopiowane. Jakieś sposoby na ucieczkę?


to wykonalne, ale usunięcie ich po skopiowaniu może być prostsze
Karoly Horvath

6
tak, ale kopiowanie ukrytych plików do innych lokalizacji jest w moim przypadku zagrożeniem bezpieczeństwa.
Rahul,

Odpowiedzi:


127

Możesz użyć rsync:

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

1
Jakieś koszty ogólne w porównaniu z cp?
Rahul,

2
@Rahul Nie przyszło mi do głowy, aby porównać to, ale myślę, że nie powinieneś się tym martwić
Eugene Yarmash.

3
Działa świetnie! Dzięki stary! Dla informacji, rsync byłby świetny, gdy rozmiar pliku jest duży, ale równy cp w przypadku mniejszych plików.
Rahul

26

Możesz to zrobić

cp -r SRC_DIR/* DEST_DIR

aby wykluczyć wszystkie .files i .dirs na poziomie SRC_DIR, ale mimo to skopiowałoby wszelkie ukryte pliki do następnego poziomu podkatalogów.


6
Właśnie w tym problem .. :)
Rahul,

9
Ale to działa w przypadku GIT-Repos, jeśli nie chcesz skopiować całego indeksu GIT do .git / ...
Sedat Kilinc

1
Dałem odpowiedź, ponieważ jest to rozwiązanie, którego szukałem. Nie chcę wykluczyć wszystkich elementów niewidocznych na drzewie, tylko elementy niewidoczne na poziomie głównym!
l008com

Inny wariant cp SOURCE/[!.]* TARGET.
Carel

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.