Как узнать свободное место на диске для данного пути в оболочке Linux?
1) Я нахожусь в каком-то каталоге 2) Я хочу узнать, сколько там свободного места осталось
Есть ли простая команда, которая делает это? Я не хочу заглядывать в fstab или что-то еще, мне нужно отобразить устройства и точки монтирования в моем уме, чтобы определить, сколько свободного места у меня осталось.
4 ответа
Команда df, которую обсуждают другие, - это только половина уравнения. Знание того, что в файловой системе есть свободное место, не означает, что у пользователя есть доступ к этому пространству.
Вы также можете использовать команду:
df -k .
Чтобы узнать свободное место в текущей файловой системе. 'df' достаточно умен, чтобы пройтись по дереву и сообщить об этом. Если вы хотите проверить квоты (см. Ниже), вы можете обработать вывод df, чтобы найти файловую систему для проверки квоты.
Может не быть свободных inode (df -i $PWD), могут быть зарезервированные блоки для суперпользователя (по умолчанию в ext2/3/4 5% от общего количества зарезервировано для root). Я считаю, что df показывает свободное место, включая зарезервированные блоки, поэтому число, которое вы видите, на самом деле больше, чем доступно, если вы не root.
Пользователь может иметь ограничения по квоте. В настоящее время ограничения по квотам встречаются гораздо реже, поскольку стоимость хранилища очень низкая, но стоит проверить и с помощью команды quota.
Я бы использовал следующее, чтобы быть более совместимым со всеми различными df(1)
и их вывод:
df . | awk '$3 ~ /[0-9]+/ { print $4 }'
Не нужно использовать tail(1)
из-за соответствия регулярному выражению.