Cách sử dụng toán tử kiểm tra tệp Bash trong Linux

theanh

Administrator
Nhân viên
Các toán tử kiểm tra tệp được sử dụng trong Linux để kiểm tra và xác minh các thuộc tính của tệp như quyền sở hữu hoặc nếu chúng là liên kết tượng trưng. Mỗi toán tử kiểm tra đều có mục đích cụ thể. Các toán tử quan trọng nhất là -e và -s. Trong bài viết này, bạn sẽ học cách kiểm tra tệp bằng cách sử dụng câu lệnh if theo sau là một số toán tử kiểm tra quan trọng trong Linux.

Trong bài viết này, chúng tôi sẽ đề cập đến các toán tử kiểm tra sau:
  • Toán tử kiểm tra If -e
  • Toán tử kiểm tra If -s
  • Toán tử kiểm tra If -d
  • Toán tử kiểm tra If -h
  • Toán tử kiểm tra If -r
  • Toán tử kiểm tra If -O

Sử dụng toán tử if -e​

Mục đích chính của việc sử dụng toán tử kiểm tra if-e trong Centos 8 là để xác minh xem tệp cụ thể có nằm trong thư mục hay không. Vì vậy, nếu bạn muốn xác minh sự tồn tại của một tệp bằng if-e, bạn phải làm theo các bước dưới đây:

Tạo hai tệp mới với tên tương ứng là Test.txt và FileTestOperators.sh. Phần mở rộng .sh thuộc về tệp bash. Bạn có thể tạo cả hai tệp trực tiếp trong thư mục gốc hoặc bằng lệnh sau:
Mã:
$ touch Test.txt
Mã:
$ touch FileTestOperators.sh
Nếu bạn muốn xác thực xem tệp đã được tạo hay chưa, hãy sử dụng lệnh sau:
Mã:
$ ls -l Test.txt




Bạn có thể thấy cả hai tệp đều được tạo trong thư mục gốc.



Mở tệp FileTestOperators.sh và viết tập lệnh vào đó như trong hình bên dưới. Chúng tôi đã khởi tạo một tệp biến và truyền tệp Test.txt làm giá trị cho tệp đó. Trong câu lệnh If, chúng ta có toán tử -e được sử dụng để xác nhận sự tồn tại của tệp Test.txt bằng biến file.



Chạy lệnh được đề cập bên dưới để kiểm tra sự tồn tại của tệp:
Mã:
$ bash FileTestOperators.sh
Vì tệp tồn tại trong thư mục, nên đầu ra sẽ là True.


Sử dụng toán tử if -s​

Mục đích của việc sử dụng toán tử kiểm tra if-s trong Centos 8 là để xác minh xem tệp được chỉ định có tồn tại và trống hay không. Vì vậy, nếu bạn muốn xác minh tệp bằng if-e, bạn phải làm theo các bước bên dưới:

Chúng tôi sẽ sử dụng cùng các tệp với một thay đổi nhỏ trong tệp FileTestOperators.sh. Bạn chỉ cần thay toán tử -s thay vì -e trong câu lệnh if.



Chạy lệnh bên dưới để kiểm tra xem tệp có trống hay không:
Mã:
$ bash FileTestOperators.sh
Vì tệp trống nên đầu ra do toán tử -s tạo ra là False



Bây giờ bạn phải thêm một số văn bản vào tệp Test.txt để thay đổi kết quả, như thể hiện trong hình ảnh bên dưới.



Chạy lại lệnh bên dưới:
Mã:
$ bash FileTestOperators.sh
Vì tệp không trống lần này nên đầu ra do toán tử -s tạo ra sẽ là True như thể hiện trong hình ảnh.



Bạn cũng có thể sử dụng hai lệnh sau để xác minh rằng tệp trống:
Mã:
$ cat Test.txt
Mã:
$ file Test.txt

Sử dụng toán tử if -d​

Mục đích của việc sử dụng toán tử kiểm tra if-d trong Centos 8 là để xác minh rằng tệp cụ thể đó có phải là thư mục hay không. Vì vậy, nếu bạn muốn kiểm tra bằng if-d, bạn nên làm theo các bước được đề cập dưới đây:

Ở đây, một lần nữa chúng ta sử dụng cả hai tệp giống nhau với một thay đổi nhỏ trong tệp bash FileTestOperators.sh. Chúng ta phải thay toán tử -s bằng toán tử -d trong câu lệnh if như được hiển thị trong hình ảnh bên dưới.



Vì vậy, hãy chạy lệnh được đề cập bên dưới để kiểm tra xem tệp có phải là thư mục hay không:
Mã:
$ bash FileTestOperators.sh
Như chúng ta đã biết, tệp Test.txt không phải là thư mục, đó là lý do tại sao toán tử -d cho kết quả False Test.txt không phải là thư mục như được hiển thị trong hình ảnh bên dưới.


Sử dụng toán tử if -h​

Toán tử kiểm tra if-h được sử dụng để kiểm tra xem tệp có phải là liên kết tượng trưng (mềm) hay không. Vì vậy, nếu bạn muốn xác minh sự tồn tại của tệp bằng if-h, bạn phải thực hiện theo các bước sau:

Tạo tệp mới có tên SymbolicFile.sh. Bạn có thể tạo nó trực tiếp trong thư mục gốc hoặc bằng lệnh sau:
Mã:
$ touch SymbolicFile.sh


Bạn có thể thấy tệp SymbolicFile.sh trong thư mục gốc như được hiển thị trong hình ảnh bên dưới.



Bạn có thể liệt kê tất cả các thư mục và tệp bằng lệnh ls. Bạn có thể thấy tệp SymbolicFile.sh cũng được liệt kê như được hiển thị trong hình ảnh.
Mã:
$ ls –l


Tạo liên kết tượng trưng bằng lệnh liên kết đơn giản. Trong lệnh này, -s đề cập đến liên kết mềm, SymbolicFile.sh là tệp có liên kết sẽ được tạo và NewSymbolicFile.sh là liên kết tượng trưng.
Mã:
$ ln -s SymbolicFile.sh NewSymbolicFile.sh


Liệt kê lại tất cả các thư mục và tệp. Bạn có thể thấy một liên kết mềm đã được tạo.



Vì vậy, một lần nữa chúng ta sử dụng tệp bash FileTestOperators.sh với một thay đổi nhỏ. Thay toán tử -d bằng toán tử -h trong câu lệnh if. Lần này chúng ta cũng phải thay đổi tên tệp. Chúng ta phải sử dụng tệp là một liên kết tượng trưng, ví dụ: NewSymbolicFile.sh.



Bạn có thể thấy cả hai tệp trong hình ảnh bên dưới.



Bây giờ hãy chạy lệnh bên dưới:
Mã:
$ bash FileTestOperators.sh
Như chúng ta đã biết, tệp NewSymbolicFile.sh là một liên kết tượng trưng, đó là lý do tại sao toán tử -h cho ra kết quả True NewSymbolicFile.sh là một liên kết tượng trưng như được hiển thị trong hình ảnh bên dưới.


Sử dụng toán tử if -r​

Toán tử kiểm tra if -r được sử dụng để kiểm tra khả năng đọc của tệp, ví dụ: tệp có thể đọc được hay không. Vì vậy, nếu bạn muốn kiểm tra tệp bằng if-r, bạn phải làm theo các bước sau:

Một lần nữa, chúng tôi đang sử dụng tệp bash Test.txt và FileTestOperators.sh với một thay đổi nhỏ. Thay toán tử -h bằng toán tử -r trong câu lệnh if và gán tệp Test.txt làm giá trị cho biến file.



Bây giờ hãy chạy lệnh bên dưới:
Mã:
$ bash FileTestOperators.sh
Như chúng ta đã biết, tệp Test.txt có thể đọc được nên toán tử -r sẽ trả về True! Test.txt có thể đọc được.



Lưu ý: Sử dụng toán tử -w và -x tương ứng để xác minh xem tệp có thể ghi và thực thi được hay không.

Sử dụng toán tử if -O​

Mục đích của toán tử kiểm tra if -O là để kiểm tra xem tệp có thuộc sở hữu của người dùng hiện tại hay không. Vì vậy, để xác minh bằng if-O, bạn phải thực hiện theo các bước sau:

Một lần nữa, chúng ta sử dụng tệp bash Test.txt và FileTestOperators.sh với một chút thay đổi. Thay toán tử -r bằng toán tử -O trong câu lệnh if và gán tệp Test.txt làm giá trị cho biến file.



Bây giờ hãy chạy lệnh bên dưới:
Mã:
$ bash FileTestOperators.sh
Như chúng ta đã biết, tệp Test.txt đã thuộc sở hữu của người dùng hiện tại nên toán tử -O cho kết quả True, Test.txt thuộc sở hữu của người dùng hiện tại.


Kết luận​

Trong bài viết này, bạn đã tìm hiểu về các toán tử kiểm tra tệp quan trọng và khác biệt nhất cũng như cách chúng hoạt động trong Centos 8. Tôi hy vọng giờ đây bạn có thể tạo tệp, kiểm tra sự tồn tại của tệp, kiểm tra khả năng đọc của tệp, kiểm tra quyền sở hữu tệp và tạo liên kết mềm. Người dùng có thể cảm thấy thoải mái sau khi làm theo bài viết này một cách kỹ lưỡng.
 
Back
Bên trên