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

Lệnh Linux ‘cp’:Sao chép tệp và thư mục

Hướng dẫn này sẽ dạy bạn sử dụng Linux cp command - lệnh sao chép tệp từ thư mục này sang thư mục khác.

Linux là nền tảng ưa thích của nhiều nhà phát triển. Nếu bạn mới làm quen với Linux, sẽ không lâu nữa bạn cần bắt đầu sao chép tệp từ nơi này sang nơi khác - hãy đọc để biết giải thích về cp Linux lệnh và một số mẹo và thủ thuật về cách sử dụng nó.

cp Lệnh

Các cp lệnh có một mục đích đơn giản - để sao chép các tệp và thư mục từ nơi này sang nơi khác.

Nó có thể thực hiện việc này trên bất kỳ hệ thống tệp nào được kết nối với hệ thống Linux và sẽ giữ nguyên tệp gốc trong khi cung cấp cho bạn các tùy chọn để đổi tên và ghi đè lên các tệp đã sao chép.

Cú pháp cho cp lệnh theo trang hướng dẫn sử dụng của nó là :

cp [OPTIONS] SOURCE DESTINATION

cp Tùy chọn lệnh

Khi nhập lệnh sao chép của mình, bạn sẽ có thể chỉ định những gì bạn muốn thực hiện với các tệp đã tồn tại và có đưa nội dung thư mục vào bản sao hay không. Dưới đây là một số tùy chọn thường được sử dụng:

-b Sao lưu (tạo bản sao lưu của từng tệp đích)

-f Buộc (nếu không thể mở tệp đích hiện tại, hãy xóa tệp đó và thử lại)

-i Tương tác (nhắc trước khi ghi đè)

-n No-clobber (không ghi đè lên tệp hiện có)

-p Bảo tồn (bảo tồn chế độ, quyền sở hữu, dấu thời gian)

-r Đệ quy (sao chép thư mục và nội dung của chúng)

-u Cập nhật (chỉ sao chép khi tệp SOURCE mới hơn tệp đích hoặc khi tệp đích bị thiếu)

-v Chi tiết (giải thích những gì đang được thực hiện)

Ví dụ về Lệnh để Sao chép Tệp và Thư mục Sử dụng cp

Sao chép một tệp

Chỉ cần nhập lệnh cp theo sau là đường dẫn của tệp nguồn và tệp đích, được phân tách bằng dấu cách:

cp /path/to/source/file.txt /path/to/destination/file.txt

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

Nhập lệnh cp theo sau là tùy chọn -r (đệ quy) và đường dẫn của thư mục nguồn và đích, được phân tách bằng một khoảng trắng. Toàn bộ thư mục nguồn sẽ được sao chép vào thư mục đích, với tên gốc của nó:

cp -r /path/to/source_directory /path/to/destination_directory

Sao chép nhiều tệp hoặc thư mục

Để sao chép nhiều tệp vào thư mục đích, chỉ cần liệt kê tất cả chúng được phân tách bằng dấu cách - đường dẫn cuối cùng được cung cấp sẽ được coi là đích:

cp source_file_1.txt source_file_2.txt path/to/destination_directory

Bạn cũng có thể làm tương tự khi sao chép nhiều thư mục nếu bạn vượt qua -r (Đệ quy) tùy chọn:

cp -r source_directory_1/ source_directory_2/ /path/to/destination_directory

Để sao chép tất cả các tệp và thư mục trong thư mục nguồn sang một thư mục khác, bạn có thể sử dụng ký tự đại diện ( *):

cp -r /path/to/source/* /path/to/destination

Sao chép tệp với một tên tệp hoặc phần mở rộng nhất định

Bạn có thể thêm mặt nạ tên tệp để sao chép tệp có tên hoặc phần mở rộng phù hợp bằng cách sử dụng ký tự đại diện ( * ). Dưới đây là cách sao chép mọi hình ảnh JPG từ thư mục nguồn sang thư mục đích:

cp /path/to/source/*.jpg path/to/source/*.JPG /path/to/destination_directory

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

Các tệp liên kết biểu tượng là các tệp không chứa dữ liệu và chỉ là một tham chiếu đến một tệp khác trên đĩa. Chúng bị loại trừ theo mặc định khi sử dụng cp yêu cầu. Để bao gồm chúng, hãy sử dụng -d tùy chọn:

cp –d source_file_1.txt /path/to/destination_directory

Chỉ sao chép các tệp nhỏ hơn 7 ngày tuổi

Bạn có thể kết hợp cp ra lệnh với các lệnh khác để kiểm soát nhiều hơn những gì bạn đang sao chép. Ví dụ này sẽ sao chép chỉ các tệp dưới 7 ngày tuổi, bằng cách lọc chúng bằng cách sử dụng find và sau đó thực thi cp lệnh:

find /path/to/files* -mtime -7 -exec cp {} /mnt/nas/ \;

Xem kết quả sao chép của bạn

Bạn có thể xem nội dung của thư mục đích bằng cách sử dụng ls lệnh:

ls -hl /path/to/destination_directory

Kết luận

Sao chép tệp là công việc cần thiết hàng ngày và cú pháp sẽ nhanh chóng trở thành bản chất thứ hai đối với bạn. Đối với các tác vụ dòng lệnh Linux phổ biến khác, hãy xem các bài viết khác của chúng tôi.