Cách sao chép (và dán) file, thư mục từ dòng lệnh Linux

Sao chép và dán các file là một trong những điều cơ bản nhất bạn có thể làm trên máy tính. Trên Linux, bạn có một số tùy chọn để hoàn thành việc này. Trên dòng lệnh, mọi thứ diễn ra trực tiếp hơn, cho phép bạn kiểm soát nhiều hơn và trong một số trường hợp, đơn giản hóa mọi thứ một cách đáng kể.

Sao chép một file duy nhất

Sao chép một file duy nhất

Bất cứ khi nào bạn muốn sao chép một file hoặc thư mục trong dòng lệnh Linux, bạn sẽ sử dụng lệnh cp. cp là viết tắt của copy. Cú pháp cũng đơn giản. Sử dụng cp theo sau là file bạn muốn sao chép và đích đến nơi bạn muốn đạt bản sao.

cp your-file.txt ~/Documents/

Tất nhiên, lệnh trên giả sử rằng file của bạn nằm trong cùng thư mục mà bạn đang làm việc. Bạn có thể chỉ định cả nơi đặt file gốc và nơi muốn đặt bản sao.

cp ~/Downloads/your-file.txt ~/Documents/

Bạn cũng có tùy chọn đổi tên file của mình trong khi sao chép nó. Chỉ định tên mới ở điểm đích.

cp ~/Downloads/your-file.txt ~/Documents/new-name.txt

Tham khảo thêm bài viết: Cách sao chép và đổi tên file trong Linux để biết thêm chi tiết.

Sao chép một thư mục và nội dung của nó

Sao chép một thư mục và nội dung của nó

Để sao chép một thư mục và nội dung của nó, bạn sẽ cần phải đưa ra lệnh cp để sao chép. Điều này khá đơn giản với flag -r.

cp -r ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics

Tất cả phần còn lại của cú pháp giống hệt nhau. Flag -r dùng để thông báo cho cp rằng nó đang làm việc với một thư mục và phải sao chép nội dung của nó.

Sao chép nhiều file

Sao chép nhiều file

Bạn cũng có thể sao chép nhiều file. Dòng lệnh Linux cho phép bạn nhắm mục tiêu vào nhiều mục cùng một lúc với dấu ngoặc { }. Bạn có thể sử dụng chúng để liệt kê tên của từng file sẽ được sao chép bằng dấu phẩy.

cp ~/Downloads/{file1.txt,file2.jpg,file3.odt} ~/Documents/

Tất cả 3 file đều thuộc các loại file khác nhau và sẽ được sao chép vào thư mục Documents.

Sao chép tất cả các file cùng loại

Sao chép tất cả các file cùng loại

Nếu bạn có rất nhiều file cùng loại để sao chép, bạn có thể sử dụng ký tự đại diện *. Dấu hoa thị hay ký tự đại diện này yêu cầu dòng lệnh Linux đảm nhận hoàn toàn mọi thứ đặt ở đó. Vì vậy, nếu bạn bảo Linux sao chép *.jpg, nó sẽ sao chép tất cả các file JPG, bất kể tên hay bất cứ thứ gì xuất hiện trước phần mở rộng .jpg.

cp ~/Downloads/*.jpg ~/Pictures/

Nếu bạn muốn sử dụng nhiều loại file, giả sử JPG ​​và PNG, bạn có thể sử dụng dấu ngoặc nhọn { }.

cp ~/Downloads/*.{jpg,png} ~/Pictures/

Làm cho việc sao chép tương tác hơn

Như bạn có thể nhận thấy khi làm theo hướng dẫn này, việc sử dụng cp không cung cấp cho bạn bất kỳ loại xác nhận hoặc lời nhắc nào sau khi hoàn thành công việc, trừ khi nó gặp lỗi. Điều này có thể gây ra một chút khó chịu, đặc biệt là khi bạn đang thực hiện các thao tác sao chép file rất lớn trên phần cứng chậm. Quá trình này có thể mất nhiều thời gian để hoàn thành.

Bằng cách gắn flag -v vào lệnh, bạn yêu cầu cp cung cấp kết quả chi tiết nhất về những gì nó thực hiện. Flag -i cung cấp những lời nhắc xác nhận để bạn có cơ hội hủy các hoạt động nhất định như ghi đè một số file nhất định.

cp -rvi ~/Downloads/*.jpg ~/Pictures/

Nói chung, các flag -v-i có sẵn trong một loạt các lệnh phổ biến cho Linux.

So sánh Rsync và CP

Nếu bạn cần thực hiện một số thao tác sao chép ghi đè file (chẳng hạn như tạo bản sao lưu mà bạn sẽ cập nhật một lần trong chốc lát) vì lý do nào đó, rsync có thể giúp ích cho bạn.

rsync nâng cao hơn một chút ở chỗ nó đi sâu vào chi tiết nhỏ nhất của từng file, so sánh đầy đủ dữ liệu trong cả hai phiên bản và trong chính file, chỉ ghi đè lên dữ liệu đã thay đổi. Điều này đặc biệt hữu ích nếu thư mục đích nằm trong ổ SSD, vì nó tiết kiệm chu kỳ ghi và không làm suy giảm sức khỏe của ổ bằng cách ghi đè lên toàn bộ file.

Di chuyển một file hoặc thư mục

Nếu bạn đang tìm cách di chuyển một file từ nơi này sang nơi khác, nhưng không tạo một bản sao, bạn cũng có thể làm điều đó một cách dễ dàng, nhưng việc di chuyển một file yêu cầu sử dụng lệnh mv. Cú pháp rất giống với cp.

mv ~/Downloads/your-file.txt ~/Documents/

Tương tự, bạn cũng có thể đổi tên nó.

mv ~/Downloads/your-file.txt ~/Documents/renamed.txt

Có một sự khác biệt lớn giữa 2 lệnh cpmv. Bạn không cần flag -r để di chuyển toàn bộ thư mục.

mv ~/Downloads/downloaded-folder ~/Pictures/vacation-pics

Đó là tất cả những gì cần làm để sao chép (và dán) file, thư mục từ dòng lệnh Linux. Bạn đã sẵn sàng bắt đầu sao chép và di chuyển các file của mình từ dòng lệnh rồi đấy! Bạn có thể thấy rằng việc sử dụng dòng lệnh có thể rất hiệu quả trong một số tình huống. Tuy nhiên, trong những tình huống khác, việc sử dụng GUI sẽ dễ dàng hơn. Sau một thời gian làm việc với Linux, bạn sẽ tìm ra đâu là lựa chọn tốt nhất cho mình.

Chúc bạn thực hiện thành công!

Thứ Tư, 08/06/2022 09:28
4,511 👨 46.575
1 Bình luận
Sắp xếp theo
  • Phạm Phước
    Phạm Phước lại thêm 1 like 
    Thích Phản hồi 13/07/20
    ❖ Linux