Hướng dẫn lệnh copy file và thư mục trong Linux (đơn giản, dễ hiểu)

Những điểm chính

 

  • Hướng dẫn copy file trong Linux: Giúp người đọc biết cách copy file vào thư mục và copy nhiều file cùng lúc bằng lệnh cp.

 

  • Copy thư mục trong Linux bằng lệnh cp: Hướng dẫn sử dụng tùy chọn -R để copy toàn bộ thư mục và các nội dung bên trong.

 

  • Sao chép file và thư mục bằng rsync: Giúp người đọc hiểu cách dùng rsync với tùy chọn -a để copy và đồng bộ dữ liệu hiệu quả, giữ nguyên quyền và thuộc tính file.

 

1. Copy file trong Linux bằng lệnh cp

 

Để copy file hoặc thư mục, bạn cần có quyền đọc (read) trên file gốc và quyền ghi (write) tại thư mục đích.

 

Trên Linux hoặc Unix, lệnh cơ bản để copy là cp.

 

copy file, linux, command line

 

Copy file trong cùng thư mục

 

Ví dụ bạn có file file.txt và muốn copy thành file mới file_backup.txt, dùng lệnh:

 

cp file.txt file_backup.txt
 

Nếu file đích đã tồn tại, nó sẽ bị ghi đè. Để nhận thông báo trước khi ghi đè, thêm tùy chọn -i:


 
cp -i jump.sh jump2.sh
 

Nếu muốn giữ nguyên quyền, chủ sở hữu và thời gian chỉnh sửa file, thêm tùy chọn -p:


 
cp -p file.txt file_backup.txt
 

Để hiển thị tiến trình khi copy, sử dụng -v:


 
cp -v file.txt file_backup.txt
 

Kết quả hiển thị:


‘file.txt’ → ‘file_backup.txt’

 

Copy file vào một thư mục khác

 

Khi copy file sang thư mục khác, cần chỉ định đường dẫn tới thư mục đích.


Ví dụ copy file jump2.sh vào thư mục Documents:


 
cp jump2.sh ~/Documents/
 

Nếu chỉ ghi tên thư mục, file sẽ được copy với tên giống như file gốc.


Trong trường hợp muốn đổi tên khi copy, nhập:


 
cp jump2.sh ~/backup/new_file.txt
 

Lệnh này sẽ copy file jump2.sh vào thư mục /backup và đổi tên thành new_file.txt.

 

Copy nhiều file cùng lúc

 

Bạn có thể copy nhiều file bằng cách liệt kê tên các file và thư mục nguồn, sau đó chỉ định thư mục đích ở cuối lệnh:


 
cp -r dir_1/ jump2.sh jump.sh ~/Documents/
 

Khi copy nhiều file, thư mục đích bắt buộc phải tồn tại.

 

Ngoài ra, lệnh cp còn hỗ trợ khớp mẫu.


Ví dụ copy tất cả file có đuôi .sh từ Desktop sang Documents:


 
cp ~/Desktop/*.sh ~/Documents/
 

2. Copy thư mục trong Linux bằng lệnh cp -R

 

Để copy toàn bộ thư mục, bao gồm tất cả file và thư mục con bên trong, sử dụng tùy chọn -R hoặc -r.

 

Ví dụ copy thư mục 2024 sang thư mục time:


 
cp -R ~/Downloads/file1/file6/file8/2024 ~/Downloads/file1/file6/file7/time/
 

Lệnh trên sẽ tạo thư mục đích nếu chưa tồn tại và copy toàn bộ nội dung từ thư mục nguồn vào đó.
Nếu thư mục đích đã tồn tại, thư mục nguồn cùng các nội dung bên trong sẽ được copy vào mà không cần tạo lại.

 

Các tùy chọn khác của cp như -i, -p, -v đều có thể dùng tương tự khi copy thư mục.

 

3. Copy file và thư mục trong Linux bằng lệnh rsync

 

rsync là công cụ dòng lệnh mạnh mẽ, được dùng để sao chép và đồng bộ dữ liệu giữa hai vị trí.
So với cp, lệnh rsync nhanh hơn, linh hoạt hơn và có thể giữ nguyên toàn bộ thuộc tính của file và thư mục.

 

Tùy chọn thường dùng nhất là -a (archive), giúp copy toàn bộ thư mục (theo kiểu đệ quy), giữ nguyên quyền, thời gian chỉnh sửa, quyền sở hữu, nhóm và liên kết tượng trưng (symlink).

 

Copy file bằng rsync


 
rsync -a file.txt file_backup.txt
 

Nếu file đích đã có sẵn, rsync sẽ ghi đè lên.

 

Copy thư mục bằng rsync


 
rsync -a /home/nam/Downloads/file1/file2/file3/compress_file.tar.gz
 
/home/nam/Downloads/file1/file6
 

Lưu ý khi dùng rsync

 

Nếu thêm dấu gạch chéo (/) sau tên thư mục nguồn, rsync sẽ chỉ copy nội dung bên trong thư mục đó.


Nếu không có dấu (/), rsync sẽ copy cả thư mục gốc vào thư mục đích.

 

Ví dụ:

 

  • rsync -a source/ destination/ → chỉ copy nội dung bên trong source

 

  • rsync -a source destination/ → copy toàn bộ thư mục source vào destination

 

Để tránh nhầm lẫn, nên luôn thêm dấu (/) ở cả thư mục nguồn và thư mục đích khi dùng rsync.

 HỖ TRỢ TRỰC TUYẾN