Tôi nghĩ đây phải là một nhận xét hoặc một chỉnh sửa cho câu trả lời của ThinkingMedia về chính câu hỏi này ( Kiểm tra dung lượng đĩa trống cho phân vùng hiện tại trong bash ), nhưng tôi không được phép nhận xét (không đủ đại diện) và chỉnh sửa của tôi đã bị từ chối (lý do: "đây phải là một bình luận hoặc một câu trả lời"). Vì vậy, làm ơn, các cường quốc của vũ trụ SO, đừng chết tiệt khi tôi lặp lại và sửa "câu trả lời" của người khác. Nhưng ai đó trên internet đã sai! ™ và họ sẽ không để tôi sửa nó.
Mật mã
df --output=avail -h "$PWD" | sed '1d;s/[^0-9]//g'
có một lỗ hổng đáng kể: Có, nó sẽ xuất ra 50G
miễn phí là 50 - nhưng nó cũng sẽ xuất 5.0M
miễn phí là 50 hoặc 3.4G
miễn phí là 34 hoặc 15K
miễn phí là 15.
Để tạo một tập lệnh với mục đích kiểm tra một lượng không gian đĩa trống nhất định, bạn phải biết đơn vị bạn đang kiểm tra. Loại bỏ nó (như sed
trong ví dụ trên) các con số không còn ý nghĩa nữa.
Nếu bạn thực sự muốn nó hoạt động, bạn sẽ phải làm một số việc như:
FREE=`df -k --output=avail "$PWD" | tail -n1` # df -k not df -h
if [[ $FREE -lt 10485760 ]]; then # 10G = 10*1024*1024k
# less than 10GBs free!
fi;
Ngoài ra đối với một trình cài đặt df -k $INSTALL_TARGET_DIRECTORY
có thể có ý nghĩa hơn df -k "$PWD"
. Cuối cùng, xin lưu ý rằng --output
cờ không có sẵn trong mọi phiên bản df / linux.
-P
cờdf
, bạn sẽ nhận được tất cả trên một dòng.