Unix - sao chép nội dung của một thư mục sang một thư mục khác [đã đóng]


90
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

Và bây giờ Folder2/trông giống như:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

Làm thế nào để làm cho điều này xảy ra? Tôi đã thử cp -r Folder1/ Folder2/nhưng cuối cùng vẫn gặp phải:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

Đó là gần nhưng không chính xác những gì tôi muốn.

Cảm ơn!

Câu trả lời:


124

Thử đi:

cp Folder1/* Folder2/

3
nhưng điều này sẽ không sao chép các tệp ẩn, phải không?
Fabrizio Regini

9
Chính xác. cp -Rsẽ, nhưng điều đó sẽ sao chép đệ quy, vì vậy bạn có thể muốn hoặc không muốn sử dụng nó. Bạn có thể cp Folder1/.* Folder2/chỉ sao chép các tệp ẩn.
Geoff

1
Lưu ý rằng điều này sẽ không thành công nếu bạn đang sử dụng "sudo" hoặc tương đương và thư mục chứa nhiều tệp. Tôi nhận đượcsudo: unable to execute /bin/cp: Argument list too long
Nathan Osman,

lưu ý rằng SCP có cú pháp hơi khác, hãy xem tại đây: stackoverflow.com/a/26346339/1984636
sivi

Đừng làm điều này. Thực hiện "cp -rT src dest" trên Linux hoặc "cp -R src / dest" trên BSD.
xpusostomos

47

Khá đơn giản, với một *ký tự đại diện.

cp -r Folder1/* Folder2/

Nhưng theo ví dụ của bạn thì đệ quy không cần thiết vì vậy những điều sau đây sẽ đủ:

cp Folder1/* Folder2/

BIÊN TẬP:

Hoặc bỏ qua mkdir Folder2phần và chỉ chạy:

cp -r Folder1 Folder2

Nếu ls | sort -k1.5 | head -8 > folder1sau đó làm thế nào để làm điều đó?
Pooja

Bạn vừa mất tất cả các tệp ẩn của mình. Đừng làm điều này. Thực hiện "cp -rT src dest" trên Linux hoặc "cp -R src / dest" trên BSD.
xpusostomos

23

Để tạo một bản sao chính xác, quyền, quyền sở hữu và tất cả hãy sử dụng "-a" với "cp". "-r" sẽ sao chép nội dung của các tệp nhưng không nhất thiết phải giữ nguyên những thứ khác.

Nguồn cp -av / * Dest /

(đảm bảo rằng URL có / tồn tại trước)

Nếu bạn muốn cập nhật liên tục từ tệp này sang tệp khác hoặc đảm bảo rằng bạn cũng sao chép tất cả các tệp dotfiles, thì đây rsynclà một trợ giúp tuyệt vời:

rsync -av --xóa Nguồn / URL /

Điều này cũng "có thể phục hồi" ở chỗ bạn có thể khởi động lại nó nếu bạn hủy bỏ nó trong khi sao chép. Tôi thích "-v" vì nó cho phép bạn xem những gì đang diễn ra nhưng bạn có thể bỏ qua nó.


1
là những gì -vcho?
HattrickNZ

dài dòng, chỉ để xem những gì đang xảy ra.
Brian White

1
Nếu bạn có nhiều tệp, -vtùy chọn này có thể mất một chút thời gian. Nếu bạn không cần đầu ra -achỉ sử dụng .
Eyal Levin

1
Bạn sẽ phải chạy trên kết nối mạng khá chậm để bản sao bị chậm lại bởi đầu ra văn bản. Và thậm chí sau đó, nó có thể chỉ là sự trở lại của dấu nhắc lệnh, không phải bản sao của chính nó.
Brian White,

Bạn bị mất các tệp ẩn của mình. Thực hiện "cp -rT src dest" trên Linux hoặc "cp -R src / dest" trên BSD.
xpusostomos
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.