Home Máy chủ LinuxLinux căn bản Hướng dẫn sử dụng lệnh cp sao chép trong Linux

Hướng dẫn sử dụng lệnh cp sao chép trong Linux

by Lê Quyền
Published: Last Updated on
A+A-
Reset

Khi làm việc trên hệ thống Linux và Unix, việc sao chép tập tin và thư mục là một trong những công việc phổ biến mà bạn thường xuyên thực hiện hàng ngày.

cp là một tiện ích dòng lệnh được sử dụng để sao chép tập tin và thư mục trên các hệ thống Unix và Linux.

Trong bài viết này, chúng tôi sẽ giải thích cách sử dụng lệnh “cp”.

Cách sử dụng lệnh “cp”

Cú pháp chung cho lệnh “cp” là như sau:

AZDIGI Tutorial
cp [TÙY CHỌN] NGUỒN... ĐÍCH
    

Đối số NGUỒN có thể chứa một hoặc nhiều tập tin hoặc thư mục, và đối số ĐÍCH có thể là một tập tin hoặc thư mục.

  • Khi cả NGUỒN và ĐÍCH đều là các tập tin, lệnh “cp” sẽ sao chép tập tin đầu tiên vào tập tin thứ hai. Nếu tập tin không tồn tại, lệnh sẽ tạo nó.
  • Khi NGUỒN có nhiều tập tin hoặc thư mục, ĐÍCH phải là một thư mục. Trong trường hợp này, các tập tin và thư mục từ NGUỒN sẽ được chuyển đến thư mục ĐÍCH.
  • Khi cả NGUỒN và ĐÍCH đều là các thư mục, lệnh “cp” sẽ sao chép thư mục đầu tiên vào thư mục thứ hai.

Để sao chép tập tin và thư mục, bạn cần ít nhất quyền đọc đối với tập tin nguồn và quyền ghi đối với thư mục đích. Ngược lại, một thông báo lỗi về quyền truy cập sẽ được hiển thị.

Sao chép Tập tin với lệnh “cp”

Tình huống cơ bản nhất khi sử dụng lệnh “cp” là sao chép một tập tin trong thư mục làm việc hiện tại. Ví dụ, để sao chép một tập tin có tên là file.txt thành file_backup.txt, bạn có thể chạy lệnh sau:

AZDIGI Tutorial
cp file.txt file_backup.txt
    

hoặc:

AZDIGI Tutorial
cp file{,_backup}
    

Để sao chép một tập tin vào một thư mục khác, hãy chỉ định đường dẫn tuyệt đối hoặc tương đối đến thư mục đích.

Khi chỉ có tên thư mục được chỉ định làm đích, tập tin sao chép sẽ có cùng tên với tập tin gốc.

Trong ví dụ sau, chúng ta đang sao chép tập tin file.txt vào thư mục /backup:

AZDIGI Tutorial
cp file.txt /backup
    

Nếu bạn muốn sao chép tập tin dưới một tên khác, bạn cần chỉ định tên tập tin mong muốn. Lệnh dưới đây sẽ sao chép tập tin vào thư mục được chỉ định với tên mới_file.txt.

AZDIGI Tutorial
cp file.txt /backup/new_file.txt
    

Mặc định, nếu tập tin đích tồn tại, nó sẽ bị ghi đè. Tùy chọn -n nói với “cp” không ghi đè lên một tập tin đã tồn tại.

Để buộc “cp” yêu cầu xác nhận trước khi ghi đè, sử dụng tùy chọn -i.

AZDIGI Tutorial
cp -i file.txt file_backup.txt
    
CleanShot 2024 01 23 at 22.15.21

Nếu bạn chỉ muốn sao chép tập tin nếu nó mới hơn tập tin đích, sử dụng tùy chọn -u:

AZDIGI Tutorial
cp -u file.txt file_backup.txt
    
CleanShot 2024 01 23 at 22.15.57

Khi sao chép một tập tin, tập tin mới sẽ thuộc sở hữu của người dùng thực hiện lệnh. Sử dụng tùy chọn -p để bảo toàn chế độ tập tin, quyền sở hữu và dấu thời gian:

AZDIGI Tutorial
cp -p file.txt file_backup.txt
    
CleanShot 2024 01 23 at 22.16.16

Một tùy chọn khác có thể hữu ích là -v, nó cho phép “cp” in ra thông tin chi tiết:

AZDIGI Tutorial
cp -v file.txt file_backup.txt
    
Lệnh "cp" trong Linux

Sao chép Thư mục với lệnh “cp”

Để sao chép một thư mục, bao gồm tất cả các tập tin và thư mục con của nó, sử dụng tùy chọn -R hoặc -r.

Trong ví dụ sau, chúng ta đang sao chép thư mục Pictures vào Pictures_backup:

AZDIGI Tutorial
cp -R Pictures Pictures_backup
    

Lệnh trên tạo thư mục đích và sao chép đệ quy tất cả các tập tin và thư mục con từ nguồn vào thư mục đích.

Nếu thư mục đích đã tồn tại, chính thư mục nguồn và nội dung của nó sẽ được sao chép vào bên trong thư mục đích.

Để chỉ sao chép các tập tin và thư mục con mà không sao chép thư mục nguồn, sử dụng tùy chọn -T:

AZDIGI Tutorial
cp -RT Pictures Pictures_backup
    

Một cách khác để chỉ sao chép nội dung của thư mục mà không sao chép thư mục chính là sử dụng ký tự đại diện dấu sao (*). Nhược điểm của lệnh dưới đây là nó không sao chép các tập tin và thư mục ẩn (bắt đầu bằng dấu chấm .):

AZDIGI Tutorial
cp -RT Pictures/* Pictures_backup/
    

Tất cả các tùy chọn chúng ta đã sử dụng trong phần trước khi sao chép tập tin cũng có thể được sử dụng khi sao chép thư mục. Sự khác biệt chính là khi sao chép thư mục, bạn luôn cần sử dụng tùy chọn -R.

Sao Chép Nhiều Tập Tin và Thư Mục

Để sao chép nhiều tập tin và thư mục cùng một lúc, chỉ định tên của chúng và sử dụng thư mục đích làm đối số cuối cùng:

AZDIGI Tutorial
cp file.txt dir file1.txt  dir1
    

Khi sao chép nhiều tập tin, đích phải là một thư mục.

Kết luận

Sao chép tập tin và thư mục bằng lệnh cp là một công việc đơn giản. Để biết thêm thông tin về các tùy chọn cp có sẵn, gõ man cp trong terminal của bạn.

Để sao chép tập tin qua mạng, bạn có thể sử dụng các tiện ích rsync và scp.

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

Đánh giá

Tham gia nhóm hỗ trợ Server - Hosting

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay

Bài viết cùng chuyên mục

AZDIGI – Không chỉ là đơn vị hàng đầu trong lĩnh vực Web Hosting và Máy chủ, chúng tôi mong muốn mang lại những kiến thức bổ ích nhất và luôn cập nhật thường xuyên cho cộng đồng người đam mê thiết kế website, công nghệ,…

Vui lòng không sao chép nội dung nếu chưa xin phép. Designed and Developed by PenciDesign