vdir

1. Что такое vdir и зачем он нужен

  • Определение
    Команда vdir – это утилита из пакета util-linux, которая выводит список содержимого каталога без подробной информации о файлах, в отличие от ls. Это позволяет быстро просматривать структуру каталогов.
  • Ключевые преимущества
    • Минимальный объём вывода (только имена файлов и папок).
    • Быстрая работа с большими директориями.
    • Поддержка стандартных опций сортировки, что облегчает скриптовую обработку.

2. Как установить vdir

  • Debian/Ubuntusudo apt-get update && sudo apt-get install util-linux
  • CentOS/RHELsudo yum install util-linux
  • Arch Linuxsudo pacman -S util-linux

3. Основные варианты использования

ОпцияЧто делаетПример
-a или --allПоказывает скрытые файлы (начинающиеся с .)vdir -a /etc
-lФорматирует вывод в длинном виде, аналогично ls -lvdir -l ~/projects
-RРекурсивно выводит содержимое подкаталоговvdir -R /var/log
--sort=nameСортировка по имени (по умолчанию)vdir --sort=name /home/user

3.1 Практический пример: мониторинг логов

Bash
# Вывести все файлы в /var/log, включая скрытые, сортируя по дате изменения
vdir -lR --sort=time /var/log | grep '.log'
  • -lR обеспечивает подробный вывод и рекурсию.
  • grep '.log' фильтрует только лог-файлы.

3.2 Автоматическое обновление списков файлов

Bash
#!/usr/bin/env bash
# Скрипт для обновления списка файлов в каталоге /backup
output="/tmp/backup_list.txt"
vdir -lR /backup > "$output"
echo "Список файлов сохранён: $output"
  • Такой скрипт удобно использовать в cron‑задачах.

4. Советы по работе с vdir

  1. Совет по производительности
    При работе с огромными директориями используйте --no-sort, чтобы избежать лишней сортировки и ускорить вывод:vdir --no-sort /mnt/huge_dir
  2. Совет для скриптов
    Используйте флаг -n (или --null) в сочетании с xargs, чтобы корректно обрабатывать имена файлов, содержащих пробелы:vdir -a /var/www | tr '\n' '\0' | xargs -0 -I{} echo "Файл: {}"

5. Интеграция vdir в систему управления версиями

  • Git
    Для быстрого просмотра файлов, отслеживаемых Git‑репозиторием, можно выполнить:vdir -a . | grep '^\..*' # Показывает скрытые файлы и папки репозитория
  • Subversion
    Аналогично vdir удобно использовать для вывода списка изменений без лишних деталей.

6. Часто задаваемые вопросы

ВопросОтвет
Можно ли изменить вывод по умолчанию?Да, создайте алиас: alias vdir='vdir -l'.
Как убрать расширения файлов из вывода?Используйте awk или sed:
vdir /path | sed 's/\..*$//'