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!