Làm thế nào để sao chép trong bash tất cả các thư mục và các tập tin đệ quy?


137

Tôi có kịch bản:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir cũng chứa các thư mục con.

Vấn đề là DestFolderkhông chỉ trong tất cả các cây, mà ở cấp độ lên tất cả các cấp độ và tệp khác.

Làm thế nào để khắc phục ?


Xin lỗi, quên thêm -name "* .txt"
user710818

Câu trả lời:


289
cp -r ./SourceFolder ./DestFolder

6
Vì vậy, để làm rõ, tùy chọn capital -R sẽ sao chép lại thư mục gốc; tùy chọn -r nhỏ giữ cho các đường dẫn gốc giống nhau.
AnneTheAgile

8
@AnneTheAgile - từ các thử nghiệm của tôi vừa rồi và theo các trang nam, -r và -R không khác nhau.
aaaaaa

@aaaaaa, ty! bạn đang dùng hệ điều hành / phiên bản nào? Sau đó tôi phát hiện ra rằng các lệnh bash có thể khác nhau một cách tinh tế giữa các hệ điều hành.
AnneTheAgile

2
cpkhông phải là một lệnh bash mà là một lệnh thực thi riêng biệt, vì vậy nó là đặc thù của hệ thống. Mặt khác, các lệnh bash thực sự giống nhau trên các hệ điều hành.
lanzz

52

mã cho một bản sao đơn giản.

cp -r ./SourceFolder ./DestFolder

mã cho một bản sao với kết quả thành công

cp -rv ./SourceFolder ./DestFolder

mã cho Mạnh mẽ nếu nguồn chứa bất kỳ tệp chỉ đọc, nó cũng sẽ sao chép

cp -rf ./SourceFolder ./DestFolder

để biết chi tiết giúp đỡ

cp --help
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.