Android

Cách sao chép tập tin và thư mục trong linux

Linux | Hướng dẫn xây dựng một web-server và các website trên server đó với LAMP trên CentOS 7

Linux | Hướng dẫn xây dựng một web-server và các website trên server đó với LAMP trên CentOS 7

Mục lục:

Anonim

Sao chép tập tin và thư mục là một trong những nhiệm vụ phổ biến nhất bạn sẽ thực hiện khi làm việc trên dòng lệnh. Trong Linux, có một số lệnh để sao chép tệp với cp rsync là công cụ được sử dụng rộng rãi nhất.

Đó là một thực tế phổ biến để sử dụng lệnh cp khi sao chép tệp và lệnh rsync khi sao chép thư mục.

Để có thể sao chép tệp và thư mục, bạn phải có ít nhất quyền đọc trên tệp nguồn và quyền ghi trên thư mục đích.

Sao chép tập tin bằng lệnh cp

Trên các hệ điều hành Linux và Unix, lệnh cp được sử dụng để sao chép các tệp và thư mục.

Trường hợp sử dụng đơn giản nhất là sao chép một tập tin trong thư mục làm việc hiện tại. Ví dụ: để sao chép tệp có tên file.txt sang tệp có tên file_backup.txt trong thư mục hiện tại, bạn sẽ chạy lệnh sau:

cp file.txt file_backup.txt

Nếu tệp đích tồn tại, nó sẽ bị ghi đè. Để nhận được lời nhắc xác nhận trước khi ghi đè các tệp, hãy sử dụng tùy chọn -i .

cp -i file.txt file_backup.txt

Theo mặc định, khi sử dụng lệnh cp để sao chép tệp, tệp mới sẽ được sở hữu bởi người dùng thực hiện lệnh. Sử dụng tùy chọn -p để duy trì chế độ tệp, quyền sở hữu và dấu thời gian:

cp -p file.txt file_backup.txt

Một tùy chọn khác có thể hữu ích là -v . Khi sử dụng tùy chọn này, lệnh sẽ in những gì đang được thực hiện:

cp -v file.txt file_backup.txt

'file.txt' -> 'file_backup.txt'

Sao chép một tập tin vào một thư mục

Để sao chép một tập tin vào một thư mục, chỉ định đường dẫn tuyệt đối hoặc tương đối đến thư mục. Nếu thư mục đích bị bỏ qua, tập tin sẽ được sao chép vào thư mục hiện tại.

Trong ví dụ sau, chúng tôi đang sao chép tệp file.txt vào thư mục /backup :

cp file.txt /backup

Khi chỉ định tên thư mục là đích, tệp đã sao chép sẽ có cùng tên với tệp gốc.

cp file.txt /backup/new_file.txt

Lệnh trên sẽ sao chép tệp vào thư mục được chỉ định là new_file.txt .

Sao chép nhiều tập tin

Để sao chép nhiều tệp và thư mục cùng một lúc, chỉ định tên của các tệp và thư mục nguồn được theo sau với thư mục đích làm đối số cuối cùng:

cp file.txt dir file1.txt file2.txt dir1

Khi sao chép nhiều tập tin, đích phải là một thư mục.

Lệnh cp cũng cho phép bạn sử dụng khớp mẫu. Ví dụ: để sao chép tất cả các tệp .png từ thư mục hiện tại sang thư mục /backup , bạn sẽ sử dụng:

cp *.png /backup

Sao chép thư mục với lệnh cp

Để sao chép một thư mục, bao gồm tất cả các tệp và thư mục con của nó, hãy sử dụng tùy chọn -R hoặc -r . Trong ví dụ sau, chúng tôi đang sao chép thư mục Pictures sang Pictures_backup :

cp -R Pictures Pictures_backup

Lệnh trên sẽ tạo thư mục đích và sao chép đệ quy tất cả các tệp và thư mục con từ nguồn vào thư mục đích.

Nếu thư mục đích đã tồn tại, chính thư mục nguồn và tất cả nội dung của nó sẽ được sao chép vào thư mục đích. Để chỉ sao chép các tệp và thư mục con chứ không phải thư mục đích, hãy sử dụng tùy chọn -T :

cp -RT Pictures Pictures_backup

Các tùy chọn được sử dụng khi sao chép tập tin cũng có thể được sử dụng khi sao chép thư mục. Sự khác biệt chính là khi sao chép thư mục, bạn cần sử dụng tùy chọn -R .

Sao chép tập tin và thư mục bằng lệnh rsync

rsync là một tiện ích dòng lệnh nhanh và linh hoạt, đồng bộ hóa các tệp và thư mục giữa hai vị trí. Nó có thể được sử dụng để sao chép các tập tin vào các vị trí địa phương và từ xa.

rsync bao gồm một số tùy chọn kiểm soát mọi khía cạnh của hành vi của nó. Tùy chọn hữu ích nhất là -a sao chép các thư mục theo cách đệ quy, chuyển các thiết bị đặc biệt và khối, bảo toàn các liên kết tượng trưng, ​​thời gian sửa đổi, nhóm, quyền sở hữu và quyền.

Để sao chép một tệp từ vị trí này sang vị trí khác, bạn sẽ chạy lệnh sau:

rsync -a file.txt file_backup.txt

Nếu tệp đích tồn tại, rsync sẽ ghi đè lên nó.

Lệnh tương tự có thể được sử dụng để sao chép một thư mục:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync đe dọa các thư mục nguồn kết thúc bằng dấu gạch chéo / khác nhau. Nếu bạn thêm dấu gạch chéo vào thư mục nguồn, lệnh sẽ chỉ sao chép nội dung của thư mục nguồn vào thư mục đích. Khi dấu gạch chéo bị bỏ qua, rsync sẽ sao chép thư mục nguồn bên trong thư mục đích. Tùy chọn an toàn nhất là luôn luôn bao gồm dấu gạch chéo / trên cả đích và nguồn.

Để tìm hiểu thêm về rsync hãy kiểm tra các bài viết sau:

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sao chép các tệp và thư mục trong các hệ thống dựa trên Linux và Unix bằng cách sử dụng các tiện ích cp rsync .

thiết bị đầu cuối rs rsync