Cách sao chép một thư mục và nội dung của nó trong Linux

Sử dụng lệnh ‘cp’ để sao chép và dán toàn bộ thư mục từ nơi này sang nơi khác

Bất kể bạn đang chạy Hệ điều hành nào, sao chép một tệp hoặc một thư mục từ vị trí này sang vị trí khác là tác vụ cơ bản nhất mà bạn thực hiện hàng ngày. Vào một ngày bận rộn tại nơi làm việc, trong quá trình thực hiện dự án ở trường, hoặc trong quá trình phát triển dự án đang diễn ra, việc sao chép tệp từ vị trí A sang vị trí B là điều không thể tránh khỏi.

Việc sao chép tệp hoặc thư mục thường được thực hiện bằng GUI. Linux chăm sóc thói quen làm việc trên thiết bị đầu cuối của bạn bằng cách cung cấp tiện ích dòng lệnh cho phép bạn sao chép tệp hoặc thư mục từ vị trí này sang vị trí khác. Sử dụng cp lệnh với nhiều tùy chọn giúp bạn thoải mái sao chép tệp và thư mục theo nhiều cách.

Hãy để tôi hướng dẫn bạn qua bài viết này, nơi bạn sẽ tìm hiểu về cp lệnh và các cách sao chép thư mục cùng với nội dung của chúng.

Các tùy chọn có sẵn với cp yêu cầu

Đây là những tùy chọn phổ biến nhất được sử dụng với cp lệnh trong ngữ cảnh sao chép một thư mục và tất cả nội dung của nó.

Tùy chọnSự miêu tả
-vchế độ tiết (hiển thị tiến trình)
-r / Rsao chép thư mục một cách đệ quy
-nkhông ghi đè lên tệp hoặc thư mục hiện có
-tôinhắc nhở trước khi ghi đè

Sao chép thư mục từ vị trí này sang vị trí khác

Hãy bắt đầu với cách sử dụng cơ bản nhất của cp yêu cầu. Chúng tôi sẽ sử dụng lệnh này với tùy chọn -r.

Sử dụng -r đảm bảo rằng các thư mục con và tệp bên trong thư mục bạn đang sao chép, cũng sẽ được sao chép.

Cú pháp:

cp -r [source_location] [target_location]

Thí dụ:

Tôi có hai thư mục bên trong thư mục làm việc hiện tại của mình được gọi là ‘dự án’ và ‘không gian làm việc’.

Trong ví dụ này, tôi sẽ sử dụng cp -r lệnh sao chép thư mục ‘dự án’ cùng với tất cả nội dung của nó vào một vị trí mới, tức là ‘/ home / gaurav / workspace’. Điều này chỉ đơn giản có nghĩa là tôi đang sao chép thư mục có tên "dự án" vào một thư mục có tên là "không gian làm việc".

Đây là nội dung của thư mục ‘dự án’. Sử dụng ls lệnh để hiển thị nội dung của nó.

gaurav @ ubuntu: ~ / project $ ls -al tổng cộng 288 drwxr-xr-x 6 gaurav gaurav 4096 17/09 18:26. drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem2 drwxr-xr -x 2 gaurav gaurav 4096 17 Sep 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem4 -rw-r - r-- 1 gaurav gaurav 24 Sep 17 18:26 temp.c gaurav @ ubuntu: ~ / project $

Bây giờ, bằng cách sử dụng cp -r lệnh, chúng ta có thể sao chép thư mục ‘dự án’ vào bất kỳ vị trí mong muốn.

gaurav @ ubuntu: ~ $ cp -r / home / gaurav / project / home / gaurav / workspace gaurav @ ubuntu: ~ $

Đầu ra:

gaurav @ ubuntu: ~ / workspace $ ls -al tổng cộng 408 drwxrwxr-x 4 gaurav gaurav 4096 17/09 18:27. drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 Mar 22 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:27 project -rw-r - r - 1 gaurav gaurav 1535 16/09/2016 17:13 source.c gaurav @ ubuntu: ~ / workspace $ 

Trong kết quả đầu ra ở trên, chúng ta có thể thấy rằng thư mục ‘project’ được sao chép từ vị trí ban đầu sang vị trí mới này ‘/ home / gaurav / workspace’. Bây giờ, chúng ta hãy mở thư mục ‘project’ và kiểm tra xem tất cả nội dung bên trong nó có được sao chép hay không.

gaurav @ ubuntu: ~ $ cd ./workspace/project gaurav @ ubuntu: ~ / workspace / project $

Ghi chú: tôi đã sử dụng ./ tại đây thay vì nhập đường dẫn hoàn chỉnh. Nó chỉ đơn giản có nghĩa là đó là đường dẫn thư mục chính của tôi và không gian làm việc nằm trong thư mục nhà hoặc thư mục làm việc hiện tại của tôi. Để làm rõ hơn về điều này, bạn có thể xem bài viết này.

Đầu ra:

gaurav @ ubuntu: ~ / workspace / project $ ls -al tổng 28 drwxr-xr-x 6 gaurav gaurav 4096 17 tháng 9 18:27. drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem2 drwxr-xr-x 2 gaurav gaurav 4096 17/09 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17/09 18:27 dem4 -rw-r - r-- 1 gaurav gaurav 24/09 17 18:27 temp.c gaurav @ ubuntu: ~ / workspace / project $ 

Từ kết quả đầu ra này, chúng ta có thể kết luận rằng tất cả nội dung của thư mục ‘dự án’ cũng được chuyển đến vị trí mới.

Sao chép nhiều thư mục từ vị trí này sang vị trí khác

Để sao chép nhiều thư mục, cp lệnh có thể được sử dụng theo cách tương tự như đã đề cập ở trên. Thay đổi duy nhất ở đây là bạn sẽ cần phải nhập nhiều đường dẫn nguồn của nhiều thư mục sẽ được sao chép.

Cú pháp:

cp -r [source_path_1] [source_path_n] [destination_path]

Hãy để chúng tôi kiểm tra lệnh này với một ví dụ.

Thí dụ:

gaurav @ ubuntu: ~ / workspace $ cp -r ./snap ./project / home / gaurav / tomcat

Ở đây, tôi đã sao chép hai thư mục ‘snap’ và ‘project’ từ thư mục làm việc hiện tại của tôi sang một vị trí mới ‘/ home / gaurav / tomcat’.

Bây giờ chúng ta hãy kiểm tra xem các thư mục có được sao chép nội dung của chúng vào vị trí mới hay không.

gaurav @ ubuntu: ~ / tomcat $ ls -al tổng cộng 9316 drwxrwxr-x 5 gaurav gaurav 4096 Tháng 9 19 12:16. drwxr-xr-x 88 gaurav gaurav 266240 Sep 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 Sep 19 12:16 project drwxr-xr-x 7 gaurav gaurav 4096 Sep 19 12:16 snap

Kiểm tra xem nội dung của các thư mục này có được sao chép hay không.

gaurav @ ubuntu: ~ / tomcat / snap $ ls couchdb eclipse htop pycharm-community vim-editor gaurav @ ubuntu: ~ / tomcat / snap $ 
gaurav @ ubuntu: ~ / tomcat / project $ ls dem1, dem2 dem3 dem4 temp.c gaurav @ ubuntu: ~ / tomcat / project $

Sử dụng cp lệnh với chế độ tiết

Sử dụng cp lệnh với tùy chọn -v bật chế độ tiết. Tính năng này hiển thị các tệp trên thiết bị đầu cuối đang được sao chép. Tên của Tệp hoặc Thư mục đang được sao chép sẽ được hiển thị trên thiết bị đầu cuối của bạn.

Cú pháp:

cp -vr [source_directory] [target_location_path]

Thí dụ:

gaurav @ ubuntu: ~ $ cp -vr ./workspace/apache ./space

Trong ví dụ này, thư mục ‘apache’ được sao chép vào một thư mục mới ‘không gian’. Tôi đã sử dụng -v tùy chọn với -r, để tất cả nội dung của thư mục apache cũng được sao chép.

Đầu ra:

'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz 'gaurav @ ubuntu: ~ $

Đầu ra hiển thị thư mục đang được sao chép. Quá trình tương tự có thể được thực hiện trong trường hợp sao chép nhiều tệp.

Tránh ghi đè khi sử dụng cp yêu cầu

Đôi khi trong khi sử dụng cp lệnh sao chép nhiều tệp hoặc thư mục, bạn có thể ghi đè lên các tệp đã được sao chép vào vị trí mới. Để tránh điều này, bạn nên sử dụng -tôi tùy chọn với cp yêu cầu. Thao tác này sẽ nhắc bạn trước khi ghi đè lên bất kỳ tệp hoặc thư mục nào.

Cú pháp:

cp -ri [source_directory_path] [target_location_path]

Ghi chú: Đây, trong cú pháp tôi đã sử dụng -r tùy chọn. Điều này cũng sẽ sao chép nội dung của các thư mục. Nó cũng sẽ kiểm tra xem có bất kỳ thư mục con và tệp nào bên trong thư mục đang bị ghi đè hay không.

Thí dụ:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat cp: ghi đè './tomcat/snap/pycharm-community/current'?

Tại đây, tôi đã cố gắng sao chép một thư mục có tên là ‘snap’ vào một vị trí mới. Nhưng tên thư mục ‘snap’ đã tồn tại ở vị trí mới. Do đó, tôi sẽ được thiết bị đầu cuối nhắc trước khi ghi đè lên thư mục snap hiện có.

Bạn có thể gõ 'Đúng' hoặc là 'Không‘Như phản hồi cho lời nhắc này.

Trong trường hợp, nếu bạn không sử dụng -tôi tùy chọn, thư mục hiện có sẽ bị ghi đè bởi thư mục mới.

Bỏ qua việc ghi đè các tệp và thư mục với cp yêu cầu

Chúng ta có thể sử dụng -n tùy chọn để hướng dẫn trực tiếp thiết bị đầu cuối không bao giờ ghi đè và chỉ cần bỏ qua các tệp và thư mục tương tự trong khi sử dụng cp yêu cầu.

Cú pháp:

cp -nr [source_directory_path] [target_location_path]

Sử dụng lệnh này, bạn có thể chắc chắn rằng các tệp và thư mục của mình sẽ không bị ghi đè.

Thí dụ:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat gaurav @ ubuntu: ~ $

Ở đây, thư mục ‘snap’ đã tồn tại ở vị trí đích. Do đó, sử dụng -n tùy chọn sẽ đảm bảo không ghi đè lên thư mục này.

không giống -tôi tùy chọn, ở đây bạn sẽ không được nhắc về việc ghi đè.

Sự kết luận

Sử dụng cp lệnh sao chép thư mục và nội dung của chúng trong Linux là một quá trình dễ dàng. Để tìm hiểu thêm về cp với các tùy chọn có sẵn khác, bạn có thể xem trang hướng dẫn bằng cách gõ người đàn ông cp trong thiết bị đầu cuối Linux của bạn.