Bài 7. Các thao tác liên kết, đồng bộ, nén tệp tin và thư mục

Ở bài trước thì chúng ta đã tìm hiểu về các lệnh thao tác với tệp tin và thư mục.  

Trong bài viết này, chúng ta sẽ tìm hiểu về các thao tác liên kết, đồng bộ và nén tệp tin và thư mục.

Mục lục:

  1. Chuẩn bị.
  2. Tìm hiểu về các lệnh thao tác liên kết, đồng bộ và nén tệp tin và thư mục.
  3. Lời kết.

1. Chuẩn bị

  • Đã cài đặt máy ảo Ubuntu trên Oracle VM VirtualBox
  • Đã thực hiện thiết lập SSH tới máy chủ Ubuntu, sẵn sàng nhập lệnh

2. Tìm hiểu về các lệnh thao tác liên kết , đồng bộ và nén tệp tin/thư mục

- Đầu tiên là các bạn khởi động máy chủ Ubuntu và kết nối với máy chủ thông qua SSH Key như bài trước, ví dụ:

ssh -i ~/.ssh/xboxuser_rsa xboxuser@127.0.0.120

2.1: Thao tác liên kết tệp tin

Giả sử chúng ta có tệp tin “original_file.txt” và “symbolic_link.txt”. Chúng ta muốn khi tệp tin “original_file.txt” thay đổi thì tệp tin “symbolic_link.txt” sẽ thay đổi theo. Chúng ta sẽ thực hiện như sau:

- Chúng ta sẽ tạo tệp tin "original_file.txt", sau đó liên kết nó với tệp "symbolic_link.txt" và cuối cùng là kiểm tra kết quả:

echo "Day la thu muc goc" > original_file.txt
ln -s original_file.txt symbolic_link.txt
cat original_file.txt
cat symbolic_link.txt
ls

- Chúng ta thử thay đổi nội dung tệp "original_file.txt" và kiếm tra lại xem tệp "symbolic_link.txt" có thay đổi theo không ?

echo "Toi da thay doi tep tin nay" > original_file.txt
cat original_file.txt
cat symbolic_link.txt
ls

- Xóa liên kết bằng các xóa đi tệp tin tượng trưng:

rm symbolic_link.txt

Note: “Tệp tin trượng trưng” không lưu trữ nội dung riêng của nó, và nó sẽ thể hiện nội dung của tệp tin gốc.

2.2 Thao tác đồng bộ tất cả tệp tin và thư mục trong thư mục

Giả sử chúng ta có thư mục “sourcedir” và “destinationdir”. Chúng ta muốn khi đồng bộ thư mục “destinationdir” thì tất cả dữ liệu từ thư mục “sourcedir” sẽ đồng bộ qua thư mục “destinationdir”. Chúng ta sẽ thực hiện như sau:

mkdir sourcedir
mkdir destinationdir
echo "Day tep tin sample.txt trong thu muc goc" > sourcedir/sample.txt
mkdir sourcedir/folder
rsync -avh --delete sourcedir/ destinationdir/
ls destinationdir/

Note:

-a: Đảm bảo tính "archive" để duy trì tất cả thông tin liên quan đến tệp tin và thư mục.

-v: Hiển thị chi tiết quá trình sao chép.

-h: Hiển thị kích thước dễ đọc.

--delete: Xóa bất kỳ tệp tin nào trong thư mục đích mà không có trong thư mục nguồn.

Trường hơp: Nếu các bạn muốn đồng bộ tự động khi thư mục hoặc tệp tin thay đổi, mình sẽ có bài viết riêng về việc viết Bash Script để lắng nghe sự thay đổi và nếu có sự thay đổi thì nó sẽ tự đồng bộ.

2.3 Nén và giải nén dùng tar

Giả sử chúng ta có một tệp tin "sample.txt". Chúng ta có nhu cầu nén tệp tin này lại và giải nén nó ra.

- Đầu tiên tạo ra file sample.txt và nén nó lại.

echo "This is a sample file." > sample.txt
tar -czvf compressed_file.tar.gz sample.txt
ls

Note:

-c: Tạo tệp tin nén mới.

-z: Sử dụng gzip để nén.

-v: Hiển thị thông tin quá trình nén.

-f: Chỉ định tên cho tệp tin nén.

compressed_file.tar.gz: Tên tệp tin nén.

sample.txt: Tệp tin bạn muốn nén.

- Tiếp theo chúng ta sẽ giải nén nó ra và kiếm tra kết quả

tar -xzvf compressed_file.tar.gz
ls
cat sample.txt

Note:

-x: Trích xuất dữ liệu từ tệp tin nén.

-z: Sử dụng gzip để giải nén.

-v: Hiển thị thông tin quá trình giải nén.

-f: Chỉ định tên của tệp tin nén.

compressed_file.tar.gz: Tên tệp tin nén.

3. Lời kết

- Bài hôm nay chúng ta đã tìm hiểu về các thao tác liên kết, đồng bộ và nén tệp tin và thư mục.

- Bài học tiếp theo chúng ta sẽ tìm hiểu về các thao tác tìm kiếm tệp tin và lệnh đường ống.


Tác giả: Đỗ Thiên Giang

Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.

Lên trên