#directories #tool

app dir_tools

Набор инструментов для работы с директориями

2 releases

new 0.1.1 Mar 1, 2025
0.1.0 Mar 1, 2025

#1 in #tools

GPL-3.0 license

51KB
1K SLoC

DirTools (dirt)

Утилита командной строки для эффективной работы с файлами и директориями. Обеспечивает (часто нужные мне) операции по управлению файловой системой через простой интерфейс.

Установка

cargo install dir_tools
# или
cargo install --git https://github.com/dece1ver/dir_tools.git
# или скомпилировать из исходников
git clone https://github.com/dece1ver/dir_tools.git
cd dir_tools
cargo build --release
# или скачать в релизах

Использование

dirt [КОМАНДА] [ОПЦИИ]

Команды

Expose - Раскрыть файлы из вложенных директорий

dirt expose <ДИРЕКТОРИЯ> [--force]

Опции:

  • --force, -f: Перезаписывать существующие файлы

Flatten - Упростить структуру директорий

dirt flatten <ДИРЕКТОРИЯ> [--output <ПАПКА>] [--move-files]

Опции:

  • --output, -o: Директория для сохранения результатов
  • --move-files, -m: Перемещать файлы вместо копирования

Rename - Заменить части названий файлов/директорий

dirt rename <ДИРЕКТОРИЯ> [TARGET_TYPE] --find <ТЕКСТ> --replace <ТЕКСТ>

Опции:

  • TARGET_TYPE: dirs, files или both (по умолчанию: both)
  • --find, -f: Что заменить
  • --replace, -r: На что заменить

AddParentDir - Добавить имя родительской директории к файлам

dirt add-parent-dir <ДИРЕКТОРИЯ> [--delimiter <РАЗДЕЛИТЕЛЬ>]

Опции:

  • --delimiter, -d: Разделитель между именем директории и файла (по умолчанию: " ")

Find - Поиск файлов по различным критериям

dirt find <ДИРЕКТОРИЯ> [MODE] [--pattern <ШАБЛОН>] [--output <ФАЙЛ>]

Опции:

  • MODE: Режим поиска: file-name, content, regexp, gavriluk (по умолчанию: file-name)
  • --pattern, -p: Шаблон для поиска
  • --output, -o: Путь для сохранения результатов

Lock - Блокировка файла на чтение и запись

dirt lock <ПУТЬ> [TIMER] [MODE]

Опции:

  • TIMER: Время блокировки в секундах (не указывать для бессрочной)
  • MODE: Режим блокировки: read, write, read-write (по умолчанию: read-write)

Tree - Показать дерево директории с содержимым

dirt tree <ДИРЕКТОРИЯ> [--show-content] [--max-depth <ГЛУБИНА>] [--full-content] [--show-hidden]

Опции:

  • --show-content, -c: Показывать содержимое файлов
  • --max-depth, -d: Максимальная глубина сканирования (0 - без ограничений)
  • --full-content, -f: Показывать полное содержимое файлов
  • --show-hidden, -a: Показывать скрытые файлы

Примеры использования

# Переименовать все файлы, заменяя "old" на "new"
dirt rename . files --find "old" --replace "new"

# Переместить все файлы из вложенных папок в одну директорию
dirt flatten ./downloads -m -o ./organized

# Добавить имя родительской папки к названию каждого файла
dirt add-parent-dir ./photos -d "_"

# Найти все файлы с текстом "TODO"
dirt find ./project content -p "TODO" -o ./todo-list.txt

# Просмотреть структуру проекта с содержимым
dirt tree . -c -d 3

Особенности

  • Работает с относительными путями от текущей директории
  • Параллельная обработка для быстрой работы с большими директориями
  • Визуальные индикаторы прогресса для длительных операций
  • Корректная обработка дубликатов имен при перемещении/копировании

Dependencies

~11–23MB
~340K SLoC