/
jenyapng
/
project-bash
Обзор
Документация
Войти
/
jenyapng
/
project-bash
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
task-2/script-24.sh
77 строк
2 KB
jenyapng
first_commit
11 авг 2026, 16:22
11 авг 2026, 16:22
9ea1476
Код
Авторство
О чём код?
#!/bin/bash show_help() { echo "Использование: $0 <директория> [опции]" echo "Примеры:" echo " $0 ~/downloads" echo " $0 /var/log --human-readable" echo "Опции:" echo " -h, --human-readable Показать размер в удобном формате (KB/MB/GB)" echo " --help Показать эту справку" exit 0 } # Проверка аргументов human_readable=false while [[ $# -gt 0 ]]; do case "$1" in -h|--human-readable) human_readable=true shift ;; --help) show_help ;; -*) echo "Ошибка: неизвестный параметр '$1'" >&2 show_help exit 1 ;; *) dir="$1" shift ;; esac done [ -z "$dir" ] && { echo "Ошибка: не указана директория." >&2; show_help; exit 1; } [ ! -d "$dir" ] && { echo "Ошибка: директория '$dir' не существует." >&2; exit 1; } format_size() { local size=$1 if $human_readable; then if [ "$size" -ge 1073741824 ]; then printf "%.2f GB" $(echo "$size/1073741824" | bc -l) elif [ "$size" -ge 1048576 ]; then printf "%.2f MB" $(echo "$size/1048576" | bc -l) elif [ "$size" -ge 1024 ]; then printf "%.2f KB" $(echo "$size/1024" | bc -l) else printf "%d байт" "$size" fi else printf "%d байт" "$size" fi } echo "Поиск самого большого файла в: $dir" echo "--------------------------------" result=$(find "$dir" -type f -printf "%s %p\n" 2>/dev/null | sort -nr | head -n 1) if [ -z "$result" ]; then echo "В директории нет файлов." exit 0 fi size=$(echo "$result" | awk '{print $1}') file=$(echo "$result" | awk '{print $2}') echo "Файл с максимальным размером:" echo "Путь: $file" echo "Размер: $(format_size "$size")" echo "Дата изменения: $(date -r "$file" "+%Y-%m-%d %H:%M:%S")" echo "--------------------------------" echo "Дополнительная информация:" echo "Права доступа: $(stat -c "%A" "$file" 2>/dev/null)" echo "Владелец: $(stat -c "%U:%G" "$file" 2>/dev/null)"