Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Linux cp Command:Cách sao chép tệp và thư mục

Trong hướng dẫn này, chúng tôi giải thích cách sử dụng lệnh cp trong Linux để sao chép tệp hoặc thư mục. Ví dụ được bao gồm bên dưới.

Linux là một trong những Hệ điều hành phổ biến nhất trên hành tinh và là nền tảng cho tất cả các thiết bị Android. Nó là mã nguồn mở và có một số lợi thế rõ ràng so với các hệ thống khác như Windows hoặc macOS.

Trong Linux, có một số lượng đáng kể các lệnh khác nhau mà các lập trình viên sử dụng thường xuyên.

Lệnh cp là gì?

Bản sao (cp) lệnh là một trong những lệnh cơ bản và được sử dụng phổ biến nhất trong tất cả các lệnh Linux. Nó cho phép người dùng sao chép các tệp hoặc thư mục từ nơi này sang nơi khác. Khi các tệp được sao chép, tên tệp nguồn vẫn giữ nguyên, nhưng tên tệp đích có thể được thay đổi nếu cần.

Cú pháp chung cho lệnh cp

Dạng cú pháp phổ biến cho lệnh này là:

cp [Options] [Source] [Destination]

Các tùy chọn phổ biến cho lệnh cp

-v Verbose mode (Show Progress)
-n Do not overwrite an existing fie
-d Copy a link file
-r/R Copy directories recursively
-i Prompt before overwrite
-b Make a backup of each existing destination file
-p Preserve the specified attributes

Cách sao chép tệp và thư mục

Dưới đây, chúng ta sẽ xem xét các phương pháp được sử dụng để sao chép tệp và thư mục bằng cách sử dụng cp lệnh.

Cách tạo bản sao của tệp

Để sao chép tệp bằng lệnh cp, hãy nhập tên tệp bạn muốn sao chép, sau đó là đích.

Trong ví dụ bên dưới, tệp linxscrew.txt được sao chép sang tệp mới có tên linxscrew_updated.txt. Lệnh cp cũng tạo tệp mới.

cp linxscrew.txt linxscrew_updated.txt

Kết quả:

ls
linxscrew.txt linxscrew_updated.txt

Cách sao chép nhiều tệp sang một vị trí mới

Để sao chép nhiều tệp bằng lệnh cp, hãy chuyển tên của tệp theo sau là đích thư mục. Trong ví dụ này, chúng tôi sẽ sao chép ba tệp có tên “ linxscrew1.txt “,“ linxscrew2.txt “Và“ linxscrew3.txt “. Chúng tôi sẽ sao chép chúng từ thư mục có tên “ / home / docs ”Vào thư mục có tên“ / home / new_docs “. Tất cả các tên tệp phải được phân tách bằng dấu cách.

cp /home/docs linuxscrew1.txt linuxscrew1.txt linuxscrew1.txt /home/new_docs

Để kiểm tra xem các tệp đã được sao chép chính xác vào vị trí mới chưa, bạn có thể sử dụng lệnh Is, như được hiển thị bên dưới:

ls -lh /home/new_docs

Cách sao chép thư mục

Lệnh cp không sao chép nội dung thư mục theo mặc định. Do đó, nếu bạn muốn sao chép đệ quy một thư mục từ nơi này sang nơi khác, bạn sẽ cần sử dụng - r tùy chọn kết hợp với lệnh cp. Điều này sẽ dẫn đến toàn bộ thư mục, bao gồm cả các thư mục con, được sao chép vào thư mục đích mới. Tên thư mục sẽ được giữ nguyên.

Lệnh sau sẽ sao chép toàn bộ thư mục có tên linuxscrew , bao gồm các thư mục con, từ vị trí tài liệu đến vị trí có tên new_docs :

cp -r /home/docs/linuxscrew/ /home/newdocs/

Cách sao chép nhiều thư mục

Điều này tương tự như sao chép một thư mục và cho phép bạn sao chép đệ quy nhiều thư mục bằng một lệnh duy nhất. Trong ví dụ dưới đây, chúng tôi muốn sao chép các thư mục có tên linuxscrew_files linuxscrew_images vào thư mục có tên / home / all_linuxscrew_docs .

cp -r /home/linuxscrew_files/ /home/linuxscrew_images/ /home/all_linuxscrew_docs/

Cách sao chép tệp có định dạng cụ thể

Nếu bạn chỉ muốn sao chép các tệp có định dạng cụ thể trên Linux, bạn có thể sử dụng ký tự đại diện “ * ”Với phần mở rộng tệp có liên quan. Trong ví dụ bên dưới, chúng tôi đang sao chép tất cả các tệp có đuôi .txt vào thư mục đích, nhưng phương pháp này có thể được sử dụng với bất kỳ phần mở rộng tệp nào.

cp /home/linuxscrew/*.txt /home/text_files/

Cách tránh ghi đè lên tệp hiện có

Nếu bạn không muốn ghi đè lên tệp hiện có khi sao chép tệp trong Linux, hãy sử dụng –n quyền mua. Thao tác này sẽ kiểm tra thư mục đích để tìm tệp có tên đó và sẽ chỉ thực hiện lệnh nếu có KHÔNG một tệp có tên đó đã có sẵn. Nếu có, lệnh sẽ vẫn được thực hiện nhưng không có thay đổi nào được thực hiện. Trong ví dụ bên dưới, tên tệp là linuxscrew.txt .

cp -n /home/linuxscrew/linuxscrew.txt /home/all_linuxscrew_docs/

Cách sao chép tệp liên kết biểu tượng

Theo mặc định, các liên kết tượng trưng bị loại trừ khi thực hiện thao tác sao chép. Nếu bạn muốn sao chép tệp liên kết thì bạn sẽ cần sử dụng -d , như được hiển thị trong ví dụ bên dưới:

cp –d /hone/linuxscrew/linuxscrew.txt /home/all_linuxscrew_docs/