Lệnh cp trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh cp của Linux để sao chép các tệp và thư mục. Bạn sẽ bắt đầu bằng cách hiểu cách sử dụng cơ bản của lệnh cp, bao gồm sao chép tệp và thư mục, sau đó khám phá các tính năng nâng cao hơn như giữ lại các thuộc tính và dấu thời gian của tệp. Lab bao gồm các ví dụ thực tế để giúp bạn thành thạo trong việc quản lý tệp và thư mục bằng lệnh cp.

Lab được chia thành ba bước chính:

  1. Tìm hiểu các khái niệm cơ bản về lệnh cp
  2. Sao chép tệp và thư mục bằng lệnh cp
  3. Giữ lại các thuộc tính và dấu thời gian của tệp bằng lệnh cp

Tìm hiểu các khái niệm cơ bản về lệnh cp

Trong bước này, bạn sẽ học cách sử dụng cơ bản lệnh cp trong Linux. Lệnh cp được sử dụng để sao chép các tệp và thư mục từ vị trí này sang vị trí khác.

Hãy bắt đầu bằng cách tạo một tệp mẫu trong thư mục ~/project:

touch ~/project/sample.txt

Bây giờ, hãy sao chép tệp sample.txt sang một tệp mới có tên là copy_of_sample.txt:

cp ~/project/sample.txt ~/project/copy_of_sample.txt

Ví dụ đầu ra:

Cú pháp cơ bản của lệnh cp là:

cp [options] source_file destination_file

Ở đây, source_file là tệp bạn muốn sao chép và destination_file là tệp mới sẽ được tạo.

Bạn cũng có thể sử dụng lệnh cp để sao chép thư mục. Hãy tạo một thư mục có tên là dir1 và sao chép nó sang dir2:

mkdir ~/project/dir1
cp -r ~/project/dir1 ~/project/dir2

Tùy chọn -r được sử dụng để sao chép các thư mục một cách đệ quy, bao gồm tất cả các tệp và thư mục con bên trong thư mục.

Ví dụ đầu ra:

Đó là cách sử dụng cơ bản của lệnh cp. Trong các bước tiếp theo, bạn sẽ tìm hiểu các tính năng nâng cao hơn của lệnh cp, chẳng hạn như giữ lại các thuộc tính và dấu thời gian của tệp.

Sao chép tệp và thư mục bằng lệnh cp

Trong bước này, bạn sẽ học cách sao chép các tệp và thư mục bằng lệnh cp, bao gồm sao chép nhiều tệp và thư mục cùng một lúc.

Hãy bắt đầu bằng cách tạo một số tệp và thư mục mẫu trong thư mục ~/project:

touch ~/project/file1.txt ~/project/file2.txt
mkdir ~/project/dir1 ~/project/dir2

Bây giờ, hãy sao chép nhiều tệp cùng một lúc:

cp ~/project/file1.txt ~/project/file2.txt ~/project/dir1

Điều này sẽ sao chép file1.txtfile2.txt vào thư mục dir1.

Ví dụ đầu ra:

Bạn cũng có thể sao chép toàn bộ thư mục và nội dung của nó bằng tùy chọn -r (recursive):

cp -r ~/project/dir1 ~/project/dir3

Điều này sẽ tạo một thư mục mới dir3 và sao chép tất cả nội dung của dir1 vào đó.

Ví dụ đầu ra:

Nếu bạn muốn sao chép một thư mục và đổi tên nó cùng một lúc, bạn có thể sử dụng cú pháp sau:

cp -r ~/project/dir1 ~/project/dir4

Điều này sẽ tạo một thư mục mới dir4 và sao chép tất cả nội dung của dir1 vào đó.

Ví dụ đầu ra:

Như bạn có thể thấy, lệnh cp cung cấp một cách linh hoạt để sao chép tệp và thư mục trong Linux. Trong bước tiếp theo, bạn sẽ học cách giữ lại các thuộc tính và dấu thời gian của tệp khi sao chép tệp.

Giữ lại các thuộc tính và dấu thời gian của tệp bằng lệnh cp

Trong bước này, bạn sẽ học cách giữ lại các thuộc tính và dấu thời gian của tệp khi sao chép tệp bằng lệnh cp.

Theo mặc định, lệnh cp sẽ sao chép nội dung tệp, nhưng nó có thể không giữ lại các thuộc tính và dấu thời gian ban đầu của tệp. Để giữ lại chúng, bạn có thể sử dụng tùy chọn -p (preserve).

Hãy tạo một tệp mẫu với các thuộc tính và dấu thời gian cụ thể:

touch -a -m -t 202304010000 ~/project/sample.txt

Điều này sẽ tạo tệp sample.txt với thời gian truy cập và sửa đổi được đặt thành ngày 1 tháng 4 năm 2023, 00:00.

Bây giờ, hãy sao chép tệp trong khi giữ lại các thuộc tính và dấu thời gian của nó:

cp -p ~/project/sample.txt ~/project/copy_of_sample.txt

Ví dụ đầu ra:

Để xác minh rằng các thuộc tính và dấu thời gian đã được giữ lại, bạn có thể sử dụng lệnh ls -l:

ls -l ~/project/sample.txt ~/project/copy_of_sample.txt

Ví dụ đầu ra:

-rw-r--r-- 1 labex labex 0 Apr  1 00:00 ~/project/sample.txt
-rw-r--r-- 1 labex labex 0 Apr  1 00:00 ~/project/copy_of_sample.txt

Như bạn có thể thấy, thời gian truy cập và sửa đổi của tệp đã sao chép giống như tệp gốc.

Tùy chọn -p giữ lại các thuộc tính sau:

  • Quyền sở hữu
  • Quyền hạn
  • Dấu thời gian (truy cập, sửa đổi và thay đổi)
  • Ngữ cảnh bảo mật SELinux (nếu có)

Điều này hữu ích khi bạn cần duy trì các thuộc tính tệp ban đầu trong quá trình sao chép.

Trong bước tiếp theo, chúng ta sẽ tóm tắt những gì bạn đã học về lệnh cp.

Tóm tắt

Trong lab này, bạn đã học cách sử dụng cơ bản lệnh cp trong Linux, được sử dụng để sao chép các tệp và thư mục từ vị trí này sang vị trí khác. Bạn bắt đầu bằng cách tạo một tệp mẫu và sao chép nó sang một tệp mới. Bạn cũng đã học cách sao chép thư mục một cách đệ quy bằng tùy chọn -r. Ngoài ra, bạn đã khám phá việc sao chép nhiều tệp và thư mục cùng một lúc, điều này có thể tiết kiệm thời gian và đơn giản hóa quá trình sao chép. Lab cung cấp các ví dụ thực tế để giúp bạn hiểu các khả năng khác nhau của lệnh cp và cách sử dụng nó một cách hiệu quả trong quy trình làm việc Linux hàng ngày của bạn.

Last Updated : 10/05/2025