Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn dùng lệnh cp trong Linux chi tiết cho người mới

    Nguyễn Hưng

    Ngày đăng:

    13/01/2026

    Cập nhật lần cuối:

    13/01/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    13/01/2026

    Cập nhật lần cuối:

    13/01/2026

    Mục lục

    cp Linux là lệnh dùng để sao chép file hoặc thư mục từ vị trí nguồn sang vị trí đích trên hệ thống. Đây là công cụ hữu ích để thực hiện các tác vụ như backup, nhân bản cấu trúc thư mục, triển khai file cấu hình và di chuyển dữ liệu trong môi trường Linux. Trong bài viết này, mình sẽ cung cấp hướng dẫn chuyên sâu về lệnh cp, từ cú pháp chuẩn đến các kỹ thuật sao chép an toàn dành cho DevOps và SysAdmin.

    Những điểm chính

    • Định nghĩa lệnh cp Linux: Hiểu rõ cp là lệnh cơ bản dùng để sao chép file hoặc thư mục, giúp tạo bản sao dự phòng hoặc di chuyển dữ liệu.
    • Các tùy chọn của lệnh cp: Có được bảng tra cứu nhanh các tùy chọn quan trọng, giúp bạn tùy chỉnh việc sao chép một cách linh hoạt.
    • Những lợi ích khi sử dụng: Nắm được các lợi ích chính của cp như bảo vệ dữ liệu, quản lý file hiệu quả và an toàn khi sao chép.
    • Hướng dẫn sao chép an toàn: Biết cách sử dụng lệnh cp để sao lưu dữ liệu mà vẫn giữ nguyên toàn bộ thuộc tính.
    • Các ví dụ sử dụng thực tế: Thành thạo các lệnh cp qua các trường hợp sử dụng thực tế, từ sao chép file/thư mục cơ bản, giữ nguyên thuộc tính, đến việc sao chép hàng loạt và giám sát tiến trình.
    • Kỹ thuật nâng cao: Học được cách sử dụng tùy chọn --parents để giữ nguyên cấu trúc đường dẫn khi sao chép.
    • Những lưu ý khi sử dụng: Nắm được các lưu ý quan trọng để sử dụng cp một cách an toàn, tránh các rủi ro như ghi đè dữ liệu và xử lý sai liên kết mềm.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh cp trong Linux.

    Lệnh cp Linux là gì?

    Cp Linux là một lệnh cơ bản trong Linux dùng để sao chép file hoặc thư mục từ vị trí này sang vị trí khác trên hệ thống file. Lệnh này cho phép bạn tạo bản sao dự phòng cho dữ liệu mà không làm thay đổi bản gốc.​ Cú pháp của lệnh cp như sau:

    cp [OPTION] SOURCE DEST

    Trong đó:

    • SOURCE: Là file hoặc thư mục cần sao chép.
    • DEST: Là vị trí hoặc tên file/thư mục nơi bạn muốn sao chép đến.
    cp là lệnh dùng để sao chép file hoặc thư mục từ vị trí này sang vị trí khác trên hệ thống file
    cp là lệnh dùng để sao chép file hoặc thư mục từ vị trí này sang vị trí khác trên hệ thống file

    Các tùy chọn của lệnh cp trong Linux

    Dưới đây là các tùy chọn quan trọng của lệnh cp Linux:

    Tùy chọnChức năng kỹ thuậtVí dụ minh họa:
    -r hoặc -RRecursive: Sao chép đệ quy thư mục và nội dung bên trong.cp -r dir1 dir2
    -vVerbose: Chế độ hiển thị chi tiết tiến trình sao chép.cp -v a.txt b.txt
    -iInteractive: Yêu cầu xác nhận trước khi ghi đè lên file đích đã tồn tại.cp -i config /etc/
    -uUpdate: Chỉ sao chép nếu file nguồn mới hơn file đích hoặc file đích chưa tồn tại.cp -u a.txt b.txt
    –preserve=allFull Preservation: Giữ nguyên toàn bộ thuộc tính mở rộng và metadata.cp --preserve=all src dst
    -pPreserve: Bảo lưu các thuộc tính cơ bản: Mode, Ownership, Timestamps.cp -p src dst
    -fForce: Bắt buộc ghi đè không cần hỏi (cần thận trọng).cp -f a b

    Những lợi ích khi sử dụng lệnh cp Linux

    Lệnh cp mang lại nhiều lợi ích quan trọng trong quản lý file trên Linux:​

    • Bảo vệ dữ liệu: Lệnh cp cho phép tạo bản sao dự phòng của các file quan trọng mà không làm thay đổi hoặc xóa bản gốc. Điều này giúp bảo vệ dữ liệu khỏi mất mát hoặc hư hỏng do sơ sót.​
    • Phù hợp cho quản lý file: Với tùy chọn -r, bạn có thể sao chép toàn bộ thư mục cùng với các thư mục con và file bên trong một lần duy nhất giúp tiết kiệm thời gian so với việc sao chép từng file một.​
    • Linh hoạt khi sử dụng: Lệnh cp hỗ trợ nhiều tùy chọn mạnh mẽ như giữ nguyên thuộc tính file, chế độ tương tác, hiển thị quá trình chi tiết, cho phép bạn tùy chỉnh cách sao chép theo nhu cầu cụ thể.​
    • An toàn khi sao chép: Tùy chọn -i yêu cầu xác nhận trước khi ghi đè file đã tồn tại, giúp ngăn chặn việc vô tình xóa hoặc thay thế các file quan trọng.​
    • Tiết kiệm thời gian: Bạn có thể sao chép nhiều file cùng lúc trong một câu lệnh duy nhất bằng cách chỉ định nhiều nguồn, thay vì phải thực hiện từng lệnh một.​
    Những lợi ích khi sử dụng lệnh cp
    Những lợi ích khi sử dụng lệnh cp

    Hướng dẫn sao chép an toàn với lệnh cp Linux

    Cú pháp để sao chép an toàn với lệnh cp Linux như sau:

    cp -rv --preserve=all SOURCE DEST

    Trong đó:

    • -r (Recursive): Duyệt và sao chép đệ quy toàn bộ cấu trúc thư mục con.
    • -v (Verbose): Hiển thị chi tiết từng file đang được xử lý ra màn hình, giúp quản trị viên giám sát tiến trình.
    • --preserve=all: Bảo toàn tuyệt đối mọi metadata bao gồm quyền truy cập, chủ sở hữu, nhãn bảo mật và dấu thời gian.
    Sao lưu và di chuyển dữ liệu
    Sao lưu và di chuyển dữ liệu

    1. Sao chép file cơ bản

    Để sao chép một file đơn lẻ sang tên mới hoặc vị trí mới, bạn thực thi lệnh sau:

    cp file.txt backup.txt
    Sao chép file cơ bản
    Sao chép file cơ bản

    2. Sao chép thư mục

    Để sao chép một thư mục chứa dữ liệu, bạn bắt buộc phải dùng cờ -r, nếu thiếu thì lệnh sẽ báo lỗi bỏ qua thư mục. Cú pháp lệnh như sau:

    cp -r folder1 folder1_backup
    Sao chép thư mục
    Sao chép thư mục

    3. Copy nhưng giữ nguyên permission và timestamp

    Khi sao lưu các file cấu hình hoặc dữ liệu người dùng, việc giữ nguyên quyền hạn và thời gian là bắt buộc để đảm bảo ứng dụng hoạt động đúng sau khi restore. Để copy và giữ nguyên permission và timestamp, bạn sử dụng lệnh sau:

    cp -rp folder1 folder1_backup
    Copy nhưng giữ nguyên permission và timestamp
    Copy nhưng giữ nguyên permission và timestamp

    4. Copy có xác nhận

    Lệnh sau sẽ ngăn chặn việc vô tình ghi đè lên file quan trọng bằng cách yêu cầu xác nhận từ người dùng (y/n):

    cp -i folder1/file.txt folder1_backup/file.txt

    Lúc này, Terminal sẽ hỏi: overwrite 'folder1_backup/file.txt'?

    • Nếu bạn nhập y và nhấn Enter: file cũ sẽ bị ghi đè bởi file mới.
    • Nếu bạn nhập n: thao tác sao chép bị hủy, file đích được giữ nguyên.
    Copy có xác nhận
    Copy có xác nhận

    5. Copy hàng loạt file theo pattern với grep

    Bạn sử dụng đường ống (pipe) để lọc và sao chép hàng loạt file theo mẫu cụ thể bằng lệnh:

    ls | grep ".txt$" | xargs -I {} cp {} /folder1_backup

    Trong đó:

    • ls: Liệt kê danh sách file.
    • grep: Lọc các file có đuôi .txt.
    • xargs: Truyền danh sách file vào lệnh cp để thực thi.
    Copy hàng loạt file theo pattern với grep
    Copy hàng loạt file theo pattern với grep

    6. Giám sát tiến trình file lớn với pv

    Đối với các file kích thước lớn (ISO, Database dump), bạn kết hợp với pv để theo dõi thanh tiến độ và tốc độ truyền tải bằng lệnh sau:

    pv bigfile.iso | cp bigfile.iso /backup/

    Hoặc bạn sử dụng cơ chế redirection bằng lệnh sau:

    pv bigfile.iso > /backup/bigfile.iso
    Giám sát tiến trình file lớn với pv
    Giám sát tiến trình file lớn với pv

    7. Copy file mới hơn

    Bạn sử dụng tùy chọn -u để tiết kiệm tài nguyên, chỉ sao chép các file có nội dung mới hơn so với đích:

    cp -u *.txt /data/
    chỉ sao chép các file có nội dung mới hơn so với đích
    Chỉ sao chép các file có nội dung mới hơn so với đích

    Hướng dẫn sử dụng lệnh cp nâng cao để giữ nguyên cấu trúc đường dẫn

    Sử dụng lệnh cp kết hợp với tùy chọn --parents cho phép bạn sao chép file, đồng thời tái tạo lại toàn bộ cấu trúc thư mục cha tại đích đến. Cấu trúc lệnh như sau:

    cp --parents assets/images/logo.png backup

    Hệ thống sẽ tạo ra đường dẫn đầy đủ /backup/assets/images/logo.png thay vì chỉ copy file logo.png vào ngay thư mục /backup.

    Hệ thống sẽ tạo ra đường dẫn đầy đủ
    Hệ thống sẽ tạo ra đường dẫn đầy đủ

    Kỹ thuật này thường được ứng dụng trong các trường hợp như:

    • Sao lưu file cấu hình theo đúng cây thư mục.
    • Triển khai bản vá theo cấu trúc source code có sẵn.

    Những lưu ý khi sử dụng lệnh cp Linux

    Dưới đây là các lưu ý quan trọng khi sử dụng lệnh cp trong quản trị hệ thống Linux:

    • Rủi ro ghi đè dữ liệu: Lệnh cp mặc định sẽ ghi đè file đích nếu trùng tên mà không đưa ra cảnh báo, do đó bạn nên sử dụng tùy chọn -i để yêu cầu xác nhận thủ công.
    • Bảo toàn thuộc tính file: Quy trình sao chép tiêu chuẩn sẽ thay đổi chủ sở hữu và thời gian tạo file sang người dùng hiện tại, vì vậy bạn cần dùng tham số -p hoặc -a để giữ nguyên quyền hạn và timestamp.
    • Xử lý liên kết mềm: Hệ thống sẽ sao chép nội dung của file đích thay vì sao chép liên kết mềm trừ khi bạn chỉ định rõ tùy chọn -P hoặc -d.
    • Sao chép file tin ẩn: Ký tự đại diện * (wildcard) của Shell thường bỏ qua các file bắt đầu bằng dấu chấm (.), dẫn đến việc thiếu sót dữ liệu cấu hình khi sao chép nội dung thư mục.
    • Yêu cầu đệ quy cho thư mục: Lệnh cp sẽ báo lỗi và bỏ qua đối tượng nếu người dùng cố gắng sao chép một thư mục mà không khai báo cờ -r hoặc -R.
    Bạn cần dùng tham số -p hoặc -a để giữ nguyên quyền hạn và timestamp
    Bạn cần dùng tham số -p hoặc -a để giữ nguyên quyền hạn và timestamp (Nguồn: Internet)

    Câu hỏi thường gặp

    Có cách nào tạo bản sao lưu nhanh mà không tốn dung lượng đĩa cứng không?

    Có thể, bằng cách tạo Hard Link. Thay vì sao chép dữ liệu vật lý, bạn có thể tạo một inode mới trỏ đến cùng một vùng dữ liệu trên đĩa.
    Lệnh thực hiện như sau: cp -l source_file target_file
    Sử dụng lệnh trên sẽ cho tốc độ tức thì và gần như không tốn dung lượng lưu trữ. Tuy nhiên, nếu nội dung file gốc thay đổi, file đích cũng thay đổi theo.

    Sự khác biệt cốt lõi giữa cp -r và cp -a là gì?

    cp -r: Là lệnh sao chép đệ quy nội dung thư mục, không bảo đảm giữ nguyên quyền hạn, thời gian hay symlink.
    cp -a: Là tổ hợp của -dR –preserve=all, lệnh này sẽ sao chép đệ quy và giữ nguyên symlink, quyền hạn, user/group, timestamp, SELinux context.
    Bạn nên cp -a cho việc sao lưu hệ thống đầy đủ và dùng cp -r cho việc sao chép file tài liệu thông thường.

    Tại sao sau khi cp file cấu hình vào thư mục web, dịch vụ lại báo lỗi “403 Forbidden” dù đã chmod 777?

    Nếu bạn đang dùng các hệ điều hành như CentOS, RHEL hoặc Fedora, nguyên nhân có thể nằm ở SELinux. Khi dùng cp, file đích sẽ nhận Security Context mặc định của thư mục cha, hoặc giữ nguyên context của nguồn nếu dùng sai tùy chọn, khiến tiến trình Web Server không có quyền truy cập. Để khắc phục, bạn sử dụng cp -Z để thiết lập lại context mặc định cho đích đến hoặc sau khi copy phải chạy lệnh restorecon -Rv /var/www/html để sửa lỗi SELinux.

    Lệnh cp Linux là công cụ hữu ích nhưng có rủi ro cao nếu không được sử dụng đúng cách. Do đó, việc hiểu rõ các tùy chọn bảo toàn thuộc tính và cơ chế đệ quy không chỉ giúp bạn ngăn chặn các sự cố ghi đè dữ liệu mà còn đảm bảo tính nguyên vẹn của hệ thống sau quá trình sao lưu hoặc di chuyển.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc
    Cách sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc

    fping là phiên bản mở rộng của lệnh ping, được dùng để kiểm tra trạng thái của nhiều địa chỉ IP hoặc domain cùng lúc nhanh chóng. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện về fping, từ việc định nghĩa, cài đặt, cho đến cách khai thác các tính…

    06/02/2026

    Cách sử dụng lệnh stat Linux chi tiết và đơn giản
    Cách sử dụng lệnh stat Linux chi tiết và đơn giản

    Lệnh stat trong Linux là một tiện ích dòng lệnh dùng để hiển thị thông tin chi tiết về một file hoặc thư mục, cung cấp các thuộc tính như kích thước file, quyền truy cập, quyền sở hữu, các dấu thời gian liên quan đến lần truy cập, chỉnh sửa và thay đổi metadata…

    06/02/2026

    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết
    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết

    Lệnh rmdir là một công cụ dòng lệnh cơ bản trong hệ điều hành Linux, được thiết kế chuyên biệt để giúp bạn gỡ bỏ các thư mục trống khỏi hệ thống một cách an toàn. rmdir sẽ kiểm tra và chỉ thực hiện lệnh xóa khi thư mục thực sự không chứa tệp tin…

    06/02/2026

    Hướng dẫn check swap space Linux nhanh chóng, chính xác
    Hướng dẫn check swap space Linux nhanh chóng, chính xác

    Swap space được hiểu là vùng đệm lưu trữ dữ liệu tạm thời trên ổ cứng khi dung lượng RAM thực tế không còn đủ để đáp ứng các tiến trình đang chạy. Việc hiểu rõ cơ chế này giúp bạn duy trì sự ổn định của máy chủ, tránh tình trạng treo hệ thống…

    06/02/2026

    linux

    lenh

    text