Làm cách nào tôi có thể sao chép tệp trong một thư mục vào một thư mục khác trên Linux Terminal

How Can I Copy Files Folder Into Another Folder Linux Terminal



Khi bạn cần sao chép nội dung của một thư mục sang một thư mục khác, trong trường hợp của Linux, có rất nhiều công cụ cho bạn sử dụng. Cái nào để sử dụng? Nó phụ thuộc vào tình hình và sở thích cá nhân. Trong bài viết này, chúng ta sẽ xem xét các cách bạn có thể sao chép nội dung tệp từ thư mục này sang thư mục khác trong thiết bị đầu cuối. Nó sẽ mô tả một số lựa chọn phổ biến cho các tình huống khác nhau.

Sao chép tệp trong thiết bị đầu cuối

Sao chép nội dung của một thư mục vào một thư mục khác là một công việc rất đơn giản. Tuy nhiên, bạn có rất nhiều lựa chọn để làm điều đó. Linux được ban phước với nhiều công cụ để thao tác các tệp và thư mục thông qua các hành động khác nhau.







Tất cả các bước được trình bày trên Ubuntu 18.04.1. Đầu tiên, hãy tạo một số ít tệp giả để làm việc.



$mkdir -vdir_A



Bây giờ, hãy tạo các tệp giả bằng cách sử dụng thao tác chạm.





$chạm vàohình nộm{1..10}

Hãy tạo một thư mục khác trong dir_A với một số tệp giả.



$mkdir -vdir_B
$chạm vàohình nộm{1..10}

Bây giờ, toàn bộ cấu trúc của thư mục dir_A trông như thế này.

$câydir_A

Lệnh Cp

Các cp cho đến nay lệnh là công cụ phổ biến nhất để sao chép tệp. Đây là một công cụ được cài đặt mặc định với bất kỳ hệ thống Linux nào. Sao chép tệp và thư mục là mục đích duy nhất của cp. Nó hỗ trợ một loạt các tính năng.

Đây là cấu trúc cơ bản của cp chỉ huy.

$cp <tùy chọn> <nguồn> <điểm đến>

Ví dụ: hãy tạo một bản sao của dummy1 tập tin có tên dummy1_copy .

$cpdummy1 dummy1_copy

Bây giờ, hãy thử sao chép nhiều tệp cùng một lúc. Đối với một hoạt động như vậy, cp yêu cầu đích đến là một thư mục. Ở đây, tôi sẽ sử dụng biểu thức ký tự đại diện để lấy tất cả hình nộm các tệp và đưa chúng vào ~ / Tải xuống danh mục.

$cphình nộm*~/Tải xuống

Làm thế nào về việc sao chép một thư mục?

$cp -vrdir_A dir_A_copy

Ở đây, chúng tôi đã sử dụng hai lá cờ khác nhau. Hãy phân tích nhanh về chúng.

  • -r: Viết tắt của a đệ quy sao chép (bao gồm bất kỳ (các) tệp ẩn). Cờ phải có nếu sao chép liên quan đến toàn bộ thư mục hoặc nhiều hơn.
  • -v: Viết tắt của dài dòng . Công cụ cp sẽ xuất mọi hành động mà nó đang thực hiện.

Muốn theo các liên kết tượng trưng? Thêm cờ -L.

$cp -Lvr <nguồn> <điểm đến>

Giả sử thư mục đích đã có một tệp có cùng tên. Nếu bạn muốn tránh ghi đè, hãy sử dụng cờ -n. Nó sẽ đảm bảo rằng trong trường hợp xung đột, cp sẽ không ghi đè lên tệp.

$cp -nv <nguồn> <điểm đến>

Nếu bạn đang thực hiện một hành động sao chép / dán nhạy cảm, tốt hơn hết bạn nên có quyền kiểm soát tốt nhất đối với những gì sẽ xảy ra, phải không? Trong trường hợp này, hãy sử dụng cờ -i. Nó là viết tắt của một chế độ tương tác, nơi cp sẽ yêu cầu xác nhận mỗi khi xung đột phát sinh.

$cp -tôi <nguồn> <điểm đến>

Nếu bạn quan tâm hơn, trang người đàn ông luôn là một trong những tài liệu tốt nhất. Tìm hiểu thêm về cp.

$Đàn ông cp

lệnh mv

Công cụ mv tương tự như công cụ cp. Tuy nhiên, thay vì sao chép, mv di chuyển các tệp và thư mục. So với cp, nó đơn giản hơn.

Cấu trúc lệnh của mv tương tự như cp.

$mv <Lựa chọn> <nguồn> <điểm đến>

Để di chuyển nội dung của dir_A đến dir_A_copy , chạy lệnh sau.

$mv -vdir_A/dir_A_copy

Ở đây, cờ -v dành cho dài dòng chế độ. Nếu bạn chỉ muốn di chuyển nội dung của dir_A, hãy sử dụng nội dung sau để thay thế. Trong trường hợp này, thư mục đích phải tồn tại trước đó.

$mv -vdir_A/ *dir_A_copy

Công cụ mv không có nhiều thứ để làm việc. Đối với tất cả các tùy chọn có sẵn, hãy xem trang người đàn ông.

$Đàn ông mv

Lệnh Rsync

Đây là một trong những công cụ phổ biến và mạnh mẽ nhất để sao chép tệp, được sử dụng chủ yếu để sao lưu. Nó có khả năng sao chép tệp qua kết nối từ xa. Không giống như cp và mv, nó cũng đi kèm với rất nhiều tùy chọn sao chép tệp nâng cao cung cấp khả năng tùy chỉnh tối đa cho hành vi của nó.

Rsync chủ yếu nổi tiếng với thuật toán chuyển delta giúp giảm đáng kể lượng dữ liệu cần trao đổi. Trong trường hợp đồng bộ hóa từ xa, điều này sẽ tiết kiệm rất nhiều băng thông.

Rsync thường không được cài đặt sẵn trong bất kỳ bản phân phối Linux nào. Tuy nhiên, vì sự phổ biến của nó, nó hiện có sẵn trên tất cả các bản phân phối Linux chính. Sử dụng Pkgs.org để tìm ra gói rsync cho bản phân phối của bạn. Giả sử rằng bạn đã cài đặt rsync, hãy bắt đầu.

Đầu tiên, cấu trúc lệnh cơ bản của rsync. Nó khá giống với cp.

$rsync<tùy chọn> <nguồn> <điểm đến>

Trước khi bắt đầu, đây là một số đối số rsync phổ biến.

  • -v : Chế độ chi tiết, xuất ra bất kỳ hành động nào đang được thực hiện trên màn hình điều khiển.
  • -vv : Chế độ chi tiết với nhiều chi tiết hơn
  • -NS : Chế độ đệ quy, phải có nếu sao chép thư mục
  • -Với : Nén dữ liệu
  • -đến : Lưu trữ dữ liệu
  • -n : Chạy khô, nên chạy kết hợp với chế độ tiết. Đơn giản chỉ cần xuất ra các hành động nếu lệnh chạy thực
  • -xóa bỏ : Xóa (các) tệp và (các) thư mục trên thư mục đích nếu thư mục nguồn không còn chứa chúng nữa
  • -không toàn bộ tệp : Buộc rsync sử dụng thuật toán truyền delta của nó, bất kể điều gì. Hữu ích trong các tình huống mà bạn phải đảm bảo ghi ít dữ liệu nhất.
  • –Remove-source-file : Xóa (các) tệp nguồn sau khi sao chép.

Hãy kiểm tra chúng trong thực tế. Đầu tiên, bản sao thư mục. Chạy lệnh sau.

$rsync-vrdir_A/dir_A_copy

Để có đầu ra chi tiết hơn, hãy sử dụng cờ -vv.

$rsync-vv -NSdir_A/dir_A_copy

Bây giờ, chúng ta hãy xem phần thú vị của rsync. Chúng tôi đã thảo luận về cách rsync chỉ sao chép một cách thông minh các tệp được sửa đổi, tiết kiệm băng thông và ghi đĩa. Đã đến lúc kiểm tra nó trong hành động. Trong ví dụ này, hành động sẽ được thực hiện trong dir_A danh mục.

$rsync-vv - không có toàn bộ tệphình nộm*dir_B/

Mặc dù đã bật tính năng truyền delta, nhưng rsync có thể không áp dụng khi bạn đang thực hiện truyền dữ liệu cục bộ.

Bây giờ, chúng ta hãy kiểm tra tính năng chạy khô. Trước khi thực hiện bất kỳ lệnh rsync nào, điều quan trọng là bạn phải kiểm tra lệnh đó trước. Đây là nơi chạy khô xuất hiện. Rsync sẽ xuất ra những gì sẽ xảy ra nếu lệnh thực sự chạy.

$rsync-anvrdir_A/dir_A_copy

Rsync cũng có thể hoạt động với các thư mục từ xa, không vấn đề gì. Tất cả những gì nó cần là kết nối SSH thích hợp với các khóa SSH được định cấu hình.

$ rsync<Lựa chọn> <local_dir>
<tên tài khoản> @<máy chủ từ xa>:<đích_dir>

Bạn muốn thực hiện một thao tác di chuyển? Để đặt điều đó theo quan điểm của rsync, rsync sẽ sao chép nội dung của thư mục nguồn và sau đó, xóa nội dung nguồn.

$rsync-v --remove-source-files <nguồn> <điểm đến>

Kiểm tra kết quả của hoạt động.

$câydir_A

$câydir_A_copy

Suy nghĩ cuối cùng

Cp và rsync là những công cụ phổ biến nhất mà bạn có thể sử dụng để sao chép các tệp trong một thư mục trên thiết bị đầu cuối Linux. Cả hai người trong số họ cũng thực sự tốt cho việc viết kịch bản. Chỉ cần đảm bảo kiểm tra các chức năng trước khi thực hiện.

Thưởng thức!