Bash:
Kiểm tra xem thư mục có tồn tại không
Làm thế nào:
Dưới đây là cách bạn kiểm tra xem một thư mục có tồn tại trong Bash hay không:
if [ -d "/path/to/dir" ]; then
echo "Thư mục tồn tại."
else
echo "Thư mục không tồn tại."
fi
Đầu ra mẫu nếu thư mục tồn tại:
Thư mục tồn tại.
Và nếu nó không tồn tại:
Thư mục không tồn tại.
Vâng, nó đơn giản như vậy. Nhưng nhớ thay thế /path/to/dir
bằng đường dẫn thực tế mà bạn đang kiểm tra.
Tìm hiểu sâu:
Từ xa xưa, mọi người hầu như đã làm cùng một việc, sử dụng các lệnh kiểm tra từ dòng lệnh tương tự như những gì chúng ta làm ngày nay. Bash luôn có một cách tích hợp sẵn để kiểm tra các tệp và thư mục bởi vì đó là nhu cầu cơ bản.
Bây giờ, tại sao lại là -d
chứ không phải là thứ khác? Trong Bash, -d
cụ thể dùng để kiểm tra sự hiện diện của một thư mục. Có các kiểm tra khác nữa, như -f
cho các tệp hoặc -e
cho sự tồn tại (các tệp hoặc thư mục).
Đôi khi bạn có thể thấy:
if [[ -d "/path/to/dir" ]]; then
# Ngoặc đôi cho một cách tiếp cận hiện đại hơn, mạnh mẽ hơn.
fi
Hoặc thậm chí là &&
và ||
cho người thích viết tắt:
[ -d "/path/to/dir" ] && echo "Thư mục tồn tại." || echo "Thư mục không tồn tại."
Tuy nhiên, hãy cẩn thận—phương pháp cuối cùng này có thể làm bạn hiểu lầm nếu echo "Thư mục tồn tại."
thất bại vì một lý do nào đó, sau đó echo "Thư mục không tồn tại."
sẽ được thực hiện ngay cả khi thư mục tồn tại. Sử dụng nó một cách thận trọng và hiểu biết.
Xem thêm
- Biểu thức điều kiện trong Bash: Hướng dẫn GNU Bash
- Hướng dẫn viết kịch bản Bash: Hướng dẫn của Ryan
- Hướng dẫn viết kịch bản Bash nâng cao: Dự án Tài liệu Linux