Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Kiểm tra sự tồn tại của file/thư mục trong Bash: Hướng dẫn thực tế với ví dụ

Bạn có thể kiểm tra file hoặc thư mục có tồn tại trên hệ thống Linux bằng lệnh test trong bash. Xem ví dụ dưới đây để biết cách làm.

Cú pháp lệnh test

test BIEN_THUC

Lệnh test sẽ đánh giá BIEN_THUC. Biểu thức có thể xây dựng bằng các toán tử dưới đây và có thể kết hợp nhiều toán tử.

Toán tử Ý nghĩa
-d file True nếu file là thư mục (Directory). [[ -d demofile ]]
-e file True nếu file tồn tại (Exists). [[ -e demofile ]]
-f file True nếu file là file thường (regular File). [[ -f demofile ]]
-h file True nếu file là symbolic Link. [[ -h demofile ]]
-L file True nếu file là symbolic Link. [[ -L demofile ]]
-s file True nếu file có kích thước (Size) lớn hơn 0. [[ -s demofile ]]

Lệnh test cũng dùng cho các so sánh khác: ngày giờ file, loại, quyền, so sánh chuỗi và số – xem manual bằng lệnh:

man test

Bạn thấy dấu ngoặc vuông [[]] – có thể dùng thay cho lệnh test nhưng chúng ta tránh dùng để dễ hiểu hơn.

Ví dụ lệnh test

Kiểm tra nhanh file/thư mục tồn tại bằng toán tử && trên shell, chỉ chạy nếu test trả về TRUE:

test -e /duong/dan/toi/myfile && echo "File hoac thu muc ton tai."

Dùng lệnh test với câu lệnh if

Xây dựng script có logic điều kiện với if..else và test:

if test -f duong/dan/toi/myfile; then echo "File ton tai va la file thuong." elif test -d duong/dan/toi/myfile; then echo "File ton tai va la thu muc." else echo "File khong ton tai." fi

Kết luận

Khi ghi vào hệ thống file của user, không bao giờ nên sửa hoặc tạo file mà không kiểm tra trước – bạn có thể phá hủy dữ liệu quan trọng và rắc rối.

Script tốt sẽ kiểm tra sự hiện diện của file trước và hỏi user hành động gì – phương pháp trên có thể mở rộng để làm điều đó.

Xem thêm hướng dẫn điều hướng shell Linux tại đây!