Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Copy trong linux - Chi tiết về lệnh cp trong linux

ICT

Lệnh cp (copy) trong Linux dùng để sao chép file hoặc thư mục. Đây là một trong những lệnh cơ bản nhưng có nhiều tùy chọn quan trọng cần hiểu rõ khi làm việc trên server.


1. Cú pháp cơ bản

 
cp [options] source destination
 
  • source: file/thư mục nguồn
  • destination: đích đến

2. Các trường hợp sử dụng chính

2.1. Copy file

 
cp file1.txt file2.txt
 

→ Tạo bản sao file1.txt thành file2.txt


2.2. Copy vào thư mục

 
cp file1.txt /home/user/
 

→ Copy file vào thư mục


2.3. Copy nhiều file

 
cp file1.txt file2.txt /home/user/
 

2.4. Copy thư mục (quan trọng)

 
cp -r folder1 folder2
 
  • -r (recursive): bắt buộc khi copy thư mục

3. Các option quan trọng

3.1. -r (recursive)

Copy toàn bộ thư mục và nội dung bên trong

 
cp -r dir1 dir2
 

3.2. -a (archive) – rất quan trọng khi làm server

 
cp -a source dest
 

Giữ nguyên:

  • quyền (permissions)
  • owner/group
  • timestamp
  • symbolic links

👉 Dùng khi:

  • backup
  • clone website Drupal
  • copy config hệ thống

3.3. -v (verbose)

 
cp -v file1 file2
 

→ Hiển thị chi tiết file đang copy


3.4. -i (interactive)

 
cp -i file1 file2
 

→ Hỏi trước khi ghi đè


3.5. -u (update)

 
cp -u file1 file2
 

→ Chỉ copy nếu file nguồn mới hơn


3.6. -p (preserve)

 
cp -p file1 file2
 

→ Giữ:

  • quyền
  • owner
  • timestamp

3.7. --parents

 
cp --parents a/b/file.txt /tmp/
 

→ Giữ nguyên cấu trúc thư mục


3.8. -f (force)

 
cp -f file1 file2
 

→ Ghi đè không hỏi


4. Các tình huống thực tế (quan trọng với bạn)

4.1. Clone Drupal site (rất hay dùng)

 
cp -a sites/icu sites/plan
 

👉 Đây chính là bước bạn đang dùng trong script multisite


4.2. Backup nhanh

 
cp -a /var/www/html /backup/html_$(date +%F)
 

4.3. Copy nhưng tránh ghi đè

 
cp -n file1 /backup/
 

4.4. Copy kèm hiển thị log

 
cp -av source/ dest/
 

5. Phân biệt cp vs rsync (rất quan trọng)

Tiêu chícprsync
Copy đơn giản
Đồng bộ thông minh
Resume khi lỗi
Copy qua mạng
Tối ưu server lớn

👉 Kết luận:

  • cp: dùng nhanh, local
  • rsync: dùng production, backup, sync

6. Lưu ý quan trọng (hay gặp lỗi)

6.1. Quên -r khi copy thư mục

 
cp folder1 folder2
 

→ ❌ lỗi


6.2. Ghi đè không kiểm soát

 
cp file1 /etc/config
 

→ có thể phá hệ thống


6.3. Không giữ quyền

 
cp -r vs cp -a
 

👉 Sai lầm phổ biến:

  • cp -r → mất quyền
  • cp -a → đúng chuẩn server

7. Best practice (khuyến nghị cho bạn)

Với hệ thống bạn đang làm (Drupal + multisite + server):

Luôn ưu tiên:

 
cp -av source dest
 

Hoặc:

 
cp -a source dest
 

8. Tổng kết

  • cp = công cụ copy cơ bản, nhanh, mạnh
  • Option quan trọng nhất:
    • -r → thư mục
    • -a → production
    • -v → debug
  • Trong hệ thống server:
    • dùng cp -a cho an toàn dữ liệu
    • dùng rsync khi cần đồng bộ nâng cao