Safe file extension mover — интерактивная bash-утилита для перемещения файлов по расширению в папку «For deletion».
- 🔍 Рекурсивное сканирование — находит все файлы в папке и подпапках
- 🚫 Умный пропуск — автоматически игнорирует
node_modules,.gitи.a5c - 📊 Статистика по расширениям — показывает таблицу с количеством и размером файлов каждого типа, отсортированную по популярности
- 🛡️ Безопасное перемещение — файлы не удаляются, а перемещаются в папку
For deletion - 📄 Плоский список — все файлы кладутся в одну папку; при совпадении имён добавляется суффикс
_1,_2и т.д. - 👁️ Режим предпросмотра (
--dry-run) — посмотреть, что будет перемещено, не делая изменений - 🔢 Множественный выбор — можно выбрать сразу несколько расширений через запятую
- 🎨 Цветной вывод — с автоматическим отключением при перенаправлении в файл
- 🔧 Портативность — работает на Linux и macOS, требует только bash 4+
# Скопируйте скрипт в удобное место
sudo cp file-cleanup.sh .usr/bin/file-cleanup
sudo chmod +x /usr/bin/file-cleanup
# Или используйте напрямую
chmod +x file-cleanup.sh
./file-cleanup.sh --help# Перейти в папку с видео-курсом
cd ~/Courses/AnotherWebDevCourse
# Запустить скрипт
./file-cleanup.shСкрипт покажет таблицу расширений, например:
# Extension Count Total Size
──────────────────────────────────────────────
1 srt 15 256 KB
2 mp4 12 2.45 GB
3 pdf 3 15 MB
4 txt 2 2 KB
Введите номер или имя расширения (например, srt или 1), подтвердите операцию — и все .srt-файлы будут перемещены в папку For deletion плоским списком.
Можно выбрать сразу несколько расширений через запятую:
Enter extension index or name to move (comma-separated, or q to quit): srt,txt,1
# Сканировать конкретную папку
./file-cleanup.sh ~/Downloads
# Режим предпросмотра (ничего не перемещает)
./file-cleanup.sh --dry-run ~/Videos
# Автоматический режим: сразу переместить .srt без вопросов
./file-cleanup.sh --ext srt --yes ~/Courses
# Сразу несколько расширений
./file-cleanup.sh --ext srt,txt,log ~/Downloads
# Своя папка для перемещения
./file-cleanup.sh --quarantine-dir "To Delete" ~/Desktop| Флаг | Описание |
|---|---|
DIRECTORY |
Целевая папка (по умолчанию: текущая) |
-h, --help |
Показать справку |
-v, --version |
Показать версию |
-d, --dry-run |
Режим предпросмотра |
-e, --ext EXTENSION(S) |
Сразу выбрать расширение(я), без интерактива (через запятую) |
-y, --yes |
Авто-подтверждение (осторожно!) |
-q, --quarantine-dir NAME |
Задать своё имя папки для перемещения |
- Пробелы и юникод в именах — корректно обрабатываются через
find -print0 - Симлинки — явно игнорируются
- Файлы без расширения — отображаются как
(no extension) - Скрытые файлы — участвуют в сканировании
- Права доступа — при ошибке чтения выводится предупреждение, скрипт не падает
- Коллизии имён папки — если папка
For deletionуже существует, добавляется суффикс_1,_2и т.д. - Коллизии имён файлов — при перемещении в плоскую папку файлы с одинаковыми именами переименовываются через
_1,_2и т.д.
- bash 4.0+
find,stat,mv,date,awk(обычно входят в базовую поставку Linux/macOS)
MIT — свободное использование и модификация.