du -a --max-depth=1 | sort -n | cut -d/ -f2 | sed '$d' | while read i; do if [ -f $i ]; then du -h "$i"; else echo "$(du -h --max-depth=0 "$i")/"; fi; done
Этот скрипт на bash используется для получения информации о размере файлов и директорий в текущем каталоге.
Вначале, команда ‘du -a —max-depth=1’ используется для вывода общего размера каждого файла или директории в текущем каталоге, включая подкаталоги первого уровня. Опция ‘—max-depth=1’ ограничивает глубину обхода до первого уровня.
Затем, ‘sort -n’ сортирует эти значения по величине.
Команда ‘cut -d/ -f2’ удаляет часть пути к файлу, оставляя только название файла или директории.
Скрипт ‘while read i’ перебирает все файлы и директории, и для каждого из них использует ‘if [ -f $i ]’ чтобы проверить, является ли элемент файлом. Если это так, то для файла выводится его размер с помощью команды ‘du -h «$i»‘. Если элемент является директорией, то выводится общий размер этой директории с помощью команды ‘du -h —max-depth=0 «$i»‘.
Пользование этим скриптом позволяет увидеть, сколько места занимает каждый файл и директория в текущем каталоге, и может быть полезно для управления местом на диске.