Я пытаюсь написать сценарий, который будет рассчитывать размер каталога, и если размер меньше 10 ГБ и больше 2 ГБ, выполните какое-то действие. Где мне нужно указать имя моей папки?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
du
, и как все знают все эти команды: Вы можете ввестиman du
свой терминал, чтобы найти команду du в руководстве. Это отобразит вывод, который вы можете просмотреть, и суммирует все флаги, такие как -h, -c, -s, -b, -B, --apparent-size и т. Д., Ответы на которые вы предлагаете использовать. Затем вы можете решить для себя, как лучше всего использовать егоdu
для конкретного случая использования.Ответы:
Ты можешь сделать:
который даст вам размер вашей целевой директории.
Если вы хотите краткий вывод,
du -hcs your_directory
это хорошо.источник
du -hs
==du -hs .
.du | sort -n
он будет сортировать каталоги по размеруdu -hcs dir_name/*
включает в себя подпапкиесли вы просто хотите увидеть размер папки, а не подпапки, вы можете использовать:
Обновить:
Вы должны знать, что
du
показывает используемое дисковое пространство; а не размер файла.Вы можете использовать,
--apparent-size
если хотите увидеть сумму фактических размеров файлов.И, конечно же, в скрипте нет необходимости в
-h
(удобочитаемом) варианте.Вместо этого Вы можете использовать
-b
для более простого сравнения внутри скрипта.Но стоит заметить, что
-b
применяется--apparent-size
само по себе. И это может быть не то, что вам нужно.так что я думаю, вы должны использовать
--block-size
или-B
источник
Используйте сводку (
-s
) и байты (-b
). Вы можете вырезать первое поле резюме с помощьюcut
. Собираем все вместе:источник
Чтобы просто получить размер каталога, не более того:
выход выглядит как
источник
--max-depth
очень полезно для полезного управления выводом! например, чтобы получитьdu -h --max-depth=1
Чтобы проверить размер всех каталогов в каталоге, вы можете использовать:
du -h --max-depth=1
источник
du -h -d 1
на андроид.du -h -d 1
на OSXесли вы просто хотите увидеть совокупный размер папки и, возможно, в формате МБ или ГБ, попробуйте следующий скрипт
источник
-g
для 1-мегабайта и-m
для 1-мегабайта. черезman du
источник
Если это поможет, вы также можете создать псевдоним в вашем
.bashrc
или.bash_profile
.Это печатает размер текущего каталога или каталога, который вы передали в качестве аргумента.
источник