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

Tác giả sysadmin, T.Mười 19, 2023, 09:00:27 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

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


Mới sử dụng Linux? Đây là cách sao chép tập tin và thư mục trong nháy mắt bằng thiết bị đầu cuối!

  • Lệnh cp có thể được sử dụng để sao chép tệp vào một thư mục, sao chép nhiều tệp vào một thư mục và sao chép tệp vào thư mục có tên khác.
  • Lệnh rsync, chủ yếu được sử dụng để truyền tệp giữa các máy tính, cũng có thể được sử dụng để sao chép tệp và thư mục trên cùng một PC và cung cấp đầu ra chi tiết về quá trình truyền tệp.

Giống như bất kỳ hệ điều hành nào khác, bạn có thể sao chép và dán các tệp và thư mục (thư mục) trong bản phân phối Linux bằng giao diện máy tính để bàn. Nhưng bạn có thể tiết kiệm thời gian bằng cách sao chép các file đó trong Terminal. Đây là cách thực hiện.

1. Lệnh cp là gì?

Lệnh cp là công cụ sao chép gốc được tích hợp trong Linux. cplà viết tắt của bản sao và bạn đoán nó được sử dụng để sao chép các tập tin và thư mục trong Linux. Bạn có thể sử dụng cpđể sao chép tệp vào một thư mục, sao chép thư mục này sang thư mục khác và sao chép nhiều tệp vào một thư mục. Dưới đây là tất cả các ví dụ minh họa việc sử dụng lệnh cp.

2. Sao chép tệp trên Linux bằng lệnh cp

Hãy xem xét cp cú pháp của nó ở dạng đơn giản nhất.

Mã nguồn [Chọn]
cp [file] [directory]
Một ví dụ về việc sử dụng nó sẽ như thế này.

Mã nguồn [Chọn]
cp Test1.txt copy_Test1_here/

Lệnh trên sẽ sao chép tập tin văn bản Test1.txt vào thư mục copy_Test1_here/.

Nếu bạn có nhiều tệp cần sao chép vào một thư mục, chỉ cần liệt kê từng tệp có khoảng trắng ở giữa.

Mã nguồn [Chọn]
cp Test1.txt Test2.txt Test3.txt Test4.txt copy_all_Tests_here/
Bạn cũng có thể sao chép tệp vào một thư mục nhưng lưu nó bằng tên khác. Đây là cú pháp cho điều đó.

Mã nguồn [Chọn]
cp [file] [directory]/[new filename]
Thao tác này sẽ sao chép nội dung của ô đầu tiên và lưu nó vào thư mục dưới dạng tên tệp mới. Một ví dụ thực tế tương tự sẽ trông như thế này.

Vì có một tệp Test1.txt cần được sao chép vào thư mục copy_Test1_here dưới dạng Test2.txt:

Mã nguồn [Chọn]
cp Test1.txt copy_Test1_here/Test2.txt

Bạn muốn giữ nó trong cùng một thư mục? Bạn có thể sao chép một tập tin và đổi tên nó như sau:

Mã nguồn [Chọn]
cp Test1.txt Test2.txt
Nếu bạn không chắc liệu tệp có được sao chép đến vị trí đích hay không, bạn cũng có thể sử dụng tùy chọn -vin tên của tệp hoặc thư mục đã được sao chép (chẳng hạn như đầu ra chương trình máy tính).

Ví dụ: giả sử có một tệp Test_Examplecần được sao chép sang dir_1. Để hiển thị kết quả của thao tác sao chép, bạn sẽ sử dụng -vtùy chọn này.

Mã nguồn [Chọn]
cp -v Test_Example.txt dir_1
Đầu ra sẽ trông như thế này:

Mã nguồn [Chọn]
'Test_Example.txt' -> 'dir_1/Test_Example.txt

3. Sao chép một thư mục trên Linux

Bạn muốn sao chép toàn bộ thư mục? Giả sử rằng dir_1 và dir_2 là hai thư mục trong /Desktop. Để sao chép dir_1 sang dir_2 sử dụng lệnh cp, đây là những gì bạn cần gõ.

Mã nguồn [Chọn]
cp -a dir_1 dir_2

Tùy chọn ở đây -a là viết tắt của "archive" và được sử dụng để cho máy tính biết rằng chúng ta đang xử lý các thư mục. Lệnh sao chép thư mục dir_1 vào dir_2.

Hầu hết các quy tắc tương tự đều áp dụng cho việc sao chép các thư mục áp dụng cho các tập tin. Ví dụ: bạn có thể sao chép một thư mục lồng nhau giống như bạn có thể sao chép một tệp lồng nhau và bạn có thể chuyển đối số -v để cp chính hiển thị thao tác sao chép đã được thực hiện.

Cờ -a thực chất là sự kết hợp của hai cờ khác: -R và -d. Đối số -R chỉ định rằng thao tác sao chép là đệ quy và nó phải sao chép nội dung của đối tượng đang được sao chép cũng như chính đối tượng đó - điều này rất cần thiết để sao chép các thư mục. Đối số -d đảm bảo rằng tất cả các thuộc tính của tệp và thư mục được giữ nguyên.

Có thể chỉ sao chép các thư mục cp -r dir_1 dir_2 nhưng bạn có thể mất các thuộc tính chuyên biệt nếu làm như vậy.

4. Sao chép tập tin và thư mục bằng rsync

Lệnh này rsync là viết tắt của "Remote Sync" và chủ yếu được sử dụng để truyền tệp và thư mục giữa các máy tính trên cùng một mạng. Tuy nhiên, nó cũng cho phép sao chép các tập tin và thư mục trên cùng một PC. Dưới đây là một số ví dụ.

Xét rằng chúng ta có hai thư mục dir_1, dir_2 và một tệp Test.txt ở định dạng dir_1. Nếu chúng ta muốn sao chép tệp vào dir_2, thì lệnh rsync thực hiện tương tự sẽ như sau.

Mã nguồn [Chọn]
rsync -v dir_1/Test.txt dir_2

Đây -v là viết tắt của "dài dòng". Nó khiến các chi tiết truyền tệp xuất hiện, tương tự như tùy chọn -v trong lệnh cp. Điều này cho phép bạn xác nhận việc sao chép đã thành công. Đây là kết quả đầu ra trong trường hợp của chúng tôi:

Mã nguồn [Chọn]
sent 110 bytes received 35 bytes 290.00 bytes/sectotal size is 24 speedup is 0.17
Bạn cũng có thể sao chép nhiều tập tin cùng một lúc từ thư mục này sang thư mục khác. Giả sử rằng bạn đang ở /Desktop trong đó có hai thư mục dir_1 và dir_2. dir_1 có bốn tệp test1, test2, test3và test4 bạn muốn sao chép chúng sang dir_2. Đây là cách bạn có thể làm điều đó bằng cách sử dụng rsync:

Mã nguồn [Chọn]
rsync -v dir_1/Test1.txt dir_1/Test2.txt dir_1/Test3.txt dir_1/Test4.txt dir_2
Lệnh trên sẽ sao chép các tập tin test1, test2, test3 và test4 vào thư mục dir_2.

Để sao chép thư mục này sang thư mục khác, chúng ta phải sử dụng -a tùy chọn. Đây là một ví dụ về cách sao chép thư mục bằng Rsync.

Mã nguồn [Chọn]
rsync -av dir_1 dir_2

Nếu bạn mới làm quen với Linux và các lệnh có vẻ khó thực hiện, trước tiên hãy đảm bảo bạn dành thời gian và làm quen với các lệnh Linux cơ bản. Bạn cũng có thể tìm hiểu nhiều điều về lệnh bằng cách sử dụng lệnh man.

Ngoài rsync và cp, lệnh install còn cho phép bạn sao chép các tệp trong Linux.