2012-07-19 17 views
59

Tôi có hai thư mục và một thư mục trống.cp -r không có tệp bị ẩn

Thư mục đầu tiên có nhiều thư mục phụ với các tệp ẩn. Khi tôi cp -r nội dung từ thư mục đầu tiên đến thư mục thứ hai, các tệp ẩn cũng được sao chép. Bất kỳ giải pháp để thoát khỏi chúng?

+0

nó doable, nhưng loại bỏ chúng sau khi t bản sao có thể đơn giản hơn –

+4

vâng, nhưng việc đối phó các tệp ẩn với các vị trí khác là một mối nguy hiểm về bảo mật trong trường hợp của tôi. – Rahul

Trả lời

99

Bạn có thể sử dụng rsync:

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

Bất kỳ overheads khi so sánh với cp? – Rahul

+1

@Rahul Nó không xảy ra với tôi để đánh giá nó, nhưng tôi nghĩ bạn không nên lo lắng về điều đó –

+1

Nó hoạt động mát mẻ! Cảm ơn người đàn ông! Chỉ cần cho thông tin, rsync sẽ là tuyệt vời khi kích thước tập tin là lớn, nhưng bằng cp trong trường hợp các tập tin nhỏ hơn. – Rahul

12

Bạn có thể làm

cp -r SRC_DIR/* DEST_DIR 

để loại trừ tất cả .files và .dirs ở mức SRC_DIR, nhưng vẫn nó sẽ sao chép bất kỳ tập tin ẩn trong các cấp độ tiếp theo của thư mục con.

+1

Đó chính xác là vấn đề .. :) – Rahul

+6

Nhưng nó hoạt động cho GIT-Repos, nếu bạn không wan't để sao chép toàn bộ GIT-Index trong .git/... –

1

rsync có "C" tùy chọn

http://rsync.samba.org/ftp/rsync/rsync.html

Ví dụ:

rsync -vazC dir1 dir2 
+0

Vâng, nó sao chép các tập tin ẩn từ thư mục phụ ... – Rahul

+0

Bạn nói đúng. Tôi đã thử ** mkdir -p dir1/subdir; chạm vào dir1/subdir/.cvs; rsync -avzC dir1 dir2 ** – slitvinov

+0

rsync -av --exclude = ". *" src dest hoạt động tốt. Tham khảo câu trả lời ở trên bằng eugene. Dù sao cũng cảm ơn bạn! :) – Rahul