Как автоматически сортировать файлы по папкам на основе имени файла
Сортируй файлы по папкам на основе имени файла автоматически на Windows и Mac: правила по ключевому слову, префиксу и regex, бесплатный скрипт и папки из имени.
Чтобы автоматически сортировать файлы по папкам на основе имени файла, нужно правило, которое смотрит на имя — ключевое слово вроде invoice, префикс вроде IMG_ или шаблон вроде INV-2026 — и перемещает файл в подходящую папку. Windows и Mac умеют делать разовую версию этого встроенным поиском. Для файлов, которые продолжают поступать, скрипт по таймеру или органайзер файлов на основе правил делает это без твоего участия.
Это руководство разбирает все три способа — от двухминутного поиска до правила, которое срабатывает в момент появления файла. Здесь есть и то, что обычно упускают другие руководства: что происходит, когда под файл подходят сразу несколько правил, и как строить папку назначения из самого имени файла, чтобы Acme_Invoice_0917.pdf сам раскладывался в папку Acme без того, чтобы ты создавал её заранее.
Почему имя файла — лучший ключ сортировки, который у тебя уже есть
Сортировка по типу файла говорит только, что файл — PDF. Она не говорит, что это за PDF: счёт, договор, посадочный талон или рецепт. У всех них одно и то же расширение, и если отправлять их все в папку PDFs, беспорядок просто переезжает, а не исчезает.
Имя файла обычно знает больше. Банки экспортируют Statement_2026-08.pdf. Камеры пишут DSC_0412.JPG, а дроны — DJI_0098.MP4. Дизайнерские программы экспортируют logo-final-v3.png. Клиенты присылают Acme_brief_v2.docx. Университеты публикуют CS101_Week3_Slides.pdf. Ни одно из этих имён не выбирал ты сам, но в каждом есть слово или префикс, который говорит, куда файл относится. Правило по имени читает этот фрагмент текста и действует на его основе.
Имена ещё и непоследовательны, и именно это ломает наивные скрипты. Один и тот же поставщик за один месяц присылает Invoice, invoice и INV. Это решается двумя вещами: сопоставлением без учёта регистра и правилом, которое принимает сразу несколько вариантов написания. Оба решения разобраны в способе 3.
Когда имя вообще ничего не говорит — scan0043.pdf, download (3).pdf, Untitled document.docx — правило по имени не поможет, и тогда нужно правило, которое читает текст внутри файла. Об этом отдельное руководство: сортировка файлов по папкам на основе содержимого. А для всего, у чего имя пригодно для использования — то есть для большинства файлов, — имя быстрее и не требует открывать файл.
Три способа сортировать файлы по имени
- Поиск и перемещение вручную. Бесплатно, встроено в обе операционные системы и подходит для разовой разборки завала.
- Скрипт по таймеру. Бесплатно, обрабатывает новые файлы и молча даёт сбой, когда имя не совпадает так, как ты ожидал.
- Правило по имени в органайзере файлов. Следит за папкой, сопоставляет по «содержит», «начинается с», «заканчивается на» или regex, перемещает файл при появлении и записывает в журнал, что сделал.
Они расположены по возрастанию усилий. Начни сверху, если папка — разовый беспорядок. Начни снизу, если файлы одного типа приходят каждую неделю.
Способ 1: найди файлы по имени и перемести совпадения
На Windows открой папку в File Explorer и введи ключевое слово в строку поиска в правом верхнем углу. invoice найдёт каждый файл с этим словом в любом месте имени; name:invoice ограничивает поиск только именем, а добавление ext:pdf сужает его до PDF. Нажми Ctrl+A, чтобы выделить все результаты, вырежи их сочетанием Ctrl+X, открой папку назначения и вставь сочетанием Ctrl+V.
На Mac открой папку в Finder и нажми Cmd+F. Установи первый критерий на «Имя», выбери «содержит» и введи ключевое слово. Нажми «Сохранить», чтобы сохранить его как Smart Folder, если планируешь повторять поиск. Выдели все результаты сочетанием Cmd+A и перетащи их в папку назначения. Перетаскивание между двумя папками на одном диске перемещает файлы; удерживай Cmd при перетаскивании, чтобы принудительно переместить файл на другой диск.
У этого способа есть одно ограничение, и оно серьёзное. Он обрабатывает только те файлы, что существуют прямо сейчас. Три счёта, которые придут в следующий вторник, будут лежать в Загрузках, пока ты не запустишь поиск заново. Smart Folder показывает совпадения, но никогда ничего не перемещает. Если папка пополняется постоянно, читай дальше.
Способ 2: скрипт, который перемещает файлы по шаблону имени
Скрипт делает то же самое — поиск и перемещение — но по расписанию. На Windows сохрани это как sort-by-name.ps1:
$src = "$HOME\Downloads"
$dst = "$HOME\Documents\Invoices"
New-Item -ItemType Directory -Force $dst | Out-Null
Get-ChildItem $src -File |
Where-Object { $_.Name -match 'invoice.*\.pdf$' } |
Move-Item -Destination $dst
Затем открой Task Scheduler, создай простую задачу, которая запускает powershell.exe с аргументами -ExecutionPolicy Bypass -File C:\Scripts\sort-by-name.ps1, и настрой триггер на повтор каждые 10 минут. Оператор -match в PowerShell не учитывает регистр, поэтому Invoice и INVOICE совпадут одинаково.
На Mac или Linux эквивалент — одна строка:
find ~/Downloads -maxdepth 1 -type f -iname '*invoice*.pdf' -exec mv -n {} ~/Documents/Invoices/ \;
Запускай её каждые 10 минут через cron или агент launchd. Используй -iname, а не -name, иначе файл invoice.pdf проскочит мимо шаблона Invoice. Свежие версии macOS также попросят выдать Terminal или cron доступ к Загрузкам при первом обращении запланированного задания.
Со скриптами есть три типичные проблемы, и все они происходят молча:
- Недокачанные файлы. Браузеры сначала пишут во временный файл —
.crdownloadв Chrome,.partв Firefox — и переименовывают его по завершении загрузки. Шаблон*invoice*совпадёт и с временным файлом, переместив его посреди закачки. Всегда включай в шаблон конечное расширение, как это делают оба скрипта выше. Та же проблема подводит папочные действия Automator, о чём рассказано в автоматическом перемещении файлов из одной папки в другую. - Совпадения имён.
Move-Itemостанавливается с ошибкой, если файл с таким же именем уже есть в папке назначения.mv -nмолча пропускает такой файл. В обоих случаях файл остаётся в Загрузках, и тебе об этом никто не сообщит. - Отсутствие журнала. Когда файл пропадает, нет записи о том, переместил ли его скрипт, куда именно и почему. Приходится восстанавливать картину по временным меткам папок.
Скрипты — правильный выбор для одной папки, одного шаблона и владельца, которому комфортно править их, когда поставщик меняет систему именования. Дальше стоимость поддержки быстро растёт.
Способ 3: правило по имени в органайзере файлов
Органайзер файлов на основе правил заменяет скрипт формой: следи за этой папкой, сопоставляй имена вот так, перемещай совпадения туда-то. Hazel делает это на Mac, File Juggler и бесплатный DropIt — на Windows. В примерах ниже используется File Arbor, потому что он работает на обеих платформах, а его модель правил достаточно проста, чтобы описать её одним предложением.
У File Arbor четыре условия по имени: имя содержит, имя начинается с, имя заканчивается на и имя соответствует regex. Все четыре не учитывают регистр. Одно условие принимает сразу несколько значений, и оно выполняется, если совпадает хотя бы одно из них — поэтому invoice, inv-, rechnung это одно условие, а не три правила. Правило может содержать до пяти условий, и все условия в правиле должны быть истинны одновременно — так формулируется «имя содержит invoice И расширение pdf». Когда правило срабатывает, файл перемещается в папку назначения, а перемещение записывается в History, откуда его можно отменить.
Вот набор правил, который сортирует типичную папку Загрузки по имени. Каждое правило — это одно предложение, которое можно произнести вслух.
Правило 1 — счета и квитанции, все варианты написания, только PDF.
- Отслеживать:
Downloads - Условие: имя содержит
invoice, inv-, receipt, rechnungИ расширениеpdf - Переместить в:
Documents/Finance/<Year>/Invoices
Условие по расширению не пускает в папку финансов черновик письма с именем invoice-questions.docx. Токен <Year> считывается из даты файла, поэтому папка на следующий январь создастся сама.
Правило 2 — файлы с камеры и телефона по префиксу.
- Отслеживать:
Downloads - Условие: имя начинается с
IMG_, DSC_, DJI_, PXL_ - Переместить в:
Pictures/Camera/<Date:yyyy-mm>
Каждый производитель камер использует фиксированный префикс, поэтому «начинается с» — подходящее условие. Файл report-IMG_2024.pdf под условие не подойдёт, потому что префикс стоит не в начале.
Правило 3 — сдаваемые файлы по суффиксу.
- Отслеживать:
Work/Exports - Условие: имя заканчивается на
-final, _final, -approved - Переместить в:
Work/Deliverables
«Заканчивается на» сравнивает имя без расширения, поэтому -final одинаково совпадёт и с logo-final.png, и с brief-final.docx.
Правило 4 — файлы клиентов по первому слову имени.
- Отслеживать:
Downloads - Условие: имя соответствует regex
^[a-z]+_.+_ - Переместить в:
Clients/<NamePart:1>/<NamePart:2>
Это правило строит папку прямо из имени, и ниже ему посвящён отдельный раздел.
Правило 5 — всё остальное, что является документом.
- Отслеживать:
Downloads - Условие: расширение
pdf, docx, xlsx - Переместить в:
Documents/_Inbox
Правило-перехватчик идёт последним и не содержит условия по имени. Оно нужно для того, чтобы документ с нераспознанным именем всё равно покидал Загрузки и попадал туда, куда ты заглядываешь раз в неделю.
На бесплатном тарифе File Arbor сопоставляет только по расширению, с одной отслеживаемой папкой и двумя правилами — этого хватает на Правило 5 и ещё одно правило по типу. Условия по имени, несколько условий в одном правиле и Auto Mode относятся к Pro, который стоит $24.99 разово с пожизненными обновлениями — разделение по тарифам описано на странице с ценами.
Какое условие по имени выбрать?
| Условие | Когда использовать | Пример значения | Ловит |
|---|---|---|---|
| Имя содержит | Ключевое слово может стоять в любом месте имени | invoice | Acme_invoice_0917.pdf, INVOICE-2231.pdf |
| Имя начинается с | Инструмент или камера добавляет фиксированный префикс | Screenshot | Screenshot 2026-09-12 at 10.14.03.png |
| Имя заканчивается на | Ты или твоя команда добавляете суффикс статуса | -final | logo-final.png, deck-final.pptx |
| Имя соответствует regex | Имя следует шаблону, а не фиксированному слову | ^INV-\d{4,} | INV-2231.pdf, inv-20260912.pdf |
В первую очередь пробуй «содержит». Это самый снисходительный вариант, который покрывает большинство реальных имён. Используй «начинается с», когда ключевое слово встречается и в середине не связанных с ним имён — правило «содержит IMG» поймает reimagined-plan.pdf, а «начинается с IMG_» — нет. Используй «заканчивается на» для суффиксов, которые контролирует твоя команда. Используй regex, только когда простого слова не хватает.
Четыре regex-шаблона покрывают большую часть реальных потребностей:
^INV-\d{4,}— номер счёта: текст INV-, затем как минимум четыре цифры, в начале имени.^[A-Z]{2,4}\d{3}— код курса вроде CS101 или MATH221 в начале имени.\d{4}-\d{2}-\d{2}— дата в формате 2026-09-12 в любом месте имени.(v|version)\d+— маркер версии вроде v3 или version12.
Сопоставление не учитывает регистр, поэтому [A-Z] совпадает и со строчными буквами. File Arbor проверяет каждый шаблон на конструкции, которые могут подвесить приложение, и отклоняет такие — поэтому шаблон, допустимый где-то ещё, здесь иногда отклоняется. Если regex для тебя в новинку, руководство для начинающих по regex для организации файлов разбирает синтаксис на примерах имён файлов.
Как построить папку из имени файла?
Путь назначения в правиле File Arbor принимает токены, и два из них читают имя файла.
<NamePart:n:delimiter> берёт n-ю часть имени после разбиения по разделителю. По умолчанию разделитель — нижнее подчёркивание. Для Acme_Invoice_0917.pdf <NamePart:1> — это Acme, а <NamePart:2> — Invoice. Поэтому путь Clients/<NamePart:1>/<NamePart:2> превращается в Clients/Acme/Invoice/, и обе папки создаются, если их ещё нет. Для имён через дефис, таких как acme-invoice-0917.pdf, напиши <NamePart:1:->, чтобы разбивать по дефису.
<Name:start:length> берёт фиксированный срез имени. <Name:1:4> для 2026-09-12_report.pdf даёт 2026 — быстрый способ построить папку года из имён, которые начинаются с даты.
Есть два нюанса, которые не дают этому механизму дать сбой:
- Имя файла никогда не меняется. Токены влияют только на путь папки.
Acme_Invoice_0917.pdfпопадает вClients/Acme/Invoice/, оставаясьAcme_Invoice_0917.pdf. File Arbor намеренно не переименовывает файлы; если нужно переименование, Hazel и File Juggler умеют делать это в рамках правила. - Защити правило шаблоном. Если в имени нет нижнего подчёркивания,
<NamePart:2>окажется пустым, и пустой фрагмент выпадет из пути, поэтому файл попадёт на уровень выше, чем ты рассчитывал. Правило 4 выше сочетает токен с regex^[a-z]+_.+_, который совпадает только с именами, где есть минимум два подчёркивания. Файлы без такой структуры вместо этого попадают в правило-перехватчик.
Подход с токенами вознаграждает одну привычку в именовании: ставить ключ сортировки первым. Acme_Invoice_0917.pdf сортируется сам; Invoice 0917 (Acme).pdf — нет. Если ты можешь влиять на имена — свои собственные экспорты, клиента на старте проекта, настройки сканера коллеги — в руководстве по правилам именования файлов есть шаблоны, которые упрощают каждое из этих правил.
Что если под один файл подходят два правила?
Побеждает первое подходящее правило в списке, и каждый файл обрабатывается один раз за проход. Acme_Invoice_0917.pdf подходит под Правило 1 (содержит invoice, это PDF), Правило 4 (есть два подчёркивания) и Правило 5 (это PDF). Файл попадёт туда, куда его направит самое верхнее из этих трёх правил.
Это делает порядок правил осознанным решением, а не второстепенной деталью:
- Правила с двумя и более условиями стоят выше правил с одним условием. «Содержит invoice И содержит acme» стоит выше, чем «содержит invoice».
- Правила с узким условием стоят выше правил с широким. «Начинается с IMG_» стоит выше, чем «содержит IMG».
- Правило-перехватчик стоит последним и вообще не содержит условия по имени.
Прежде чем включать Auto Mode, запусти правила один раз вручную и открой History. Там перечислен каждый файл вместе с правилом, которое его переместило. Если файл попал не в ту папку — значит, правило стоит не на своём месте, и это исправляется перетаскиванием правила вверх или вниз. Undo вернёт файл обратно, пока ты меняешь порядок.
Что правила по имени не умеют
Правило по имени читает только имя и ничего больше. Оно не открывает файл, поэтому PDF с именем scan0043.pdf для него невидим, что бы ни было написано внутри — для этого существует правило по содержимому, и оба типа правил могут спокойно сосуществовать в одном списке. Оно не находит дубликаты сравнением содержимого — две одинаковые фотографии с разными именами для правила по имени это два разных файла. И оно не исправляет имя: правило может направить IMG_0412.JPG в папку с датой, но по прибытии файл всё так же будет называться IMG_0412.JPG.
Есть ещё один нюанс поменьше, о который часто спотыкаются. «Заканчивается на» сравнивает имя без расширения, поэтому значение .pdf никогда ни с чем не совпадёт. Чтобы сопоставлять по расширению, используй условие по расширению — это же единственное условие, доступное на бесплатном тарифе.
Какой способ выбрать?
«Папка сейчас в беспорядке, и новых файлов приходит немного». Способ 1. Поиск, выделить всё, переместить. Десять минут, никакого софта.
«Одна папка, один шаблон, и мне не страшно редактировать скрипт». Способ 2. Однострочник на PowerShell или find из примера выше, запускаемый каждые десять минут. Включи расширение в шаблон и проверяй папку раз в неделю на файлы, которые скрипт пропустил.
«Каждую неделю приходит несколько типов файлов из разных источников». Способ 3. Пять правил по имени, расположенных от частных к общим, правило-перехватчик внизу, Auto Mode включён. Скачай File Arbor и сначала настрой Правило 1; остальные строятся по той же схеме.
«Имена бесполезны». Ни один из способов. Используй правило по содержимому для PDF и документов с текстовым слоем и правила именования для всего, что производишь ты или твоя команда.
«У меня Mac, и Hazel уже есть». Hazel умеет всё из способа 3, да ещё и умеет переименовывать сверху. Менять инструмент только ради этой задачи нет смысла.
«У меня Windows и нет бюджета». DropIt сопоставляет имена по шаблонам с подстановочными знаками и бесплатен. Будь готов потратить вечер на освоение интерфейса — или используй скрипт.
Как поддерживать порядок в папках по имени со временем
Правила по имени остаются точными ровно до тех пор, пока имена остаются предсказуемыми, поэтому основная часть поддержки приходится на сторону именования.
Ставь ключ сортировки первым в любом имени, которое ты контролируешь, и попроси двух-трёх человек, которые присылают тебе больше всего файлов, делать так же. Одна фраза на старте — «пожалуйста, начинайте имена файлов с кода проекта» — окупается годом автоматической раскладки.
Когда появляется новый вариант написания, добавь его значением в существующее правило, а не создавай новое. Правило 1 начиналось с invoice, а за несколько месяцев обросло inv-, receipt и rechnung — и всё равно осталось одним правилом.
Держи инбокс-перехватчик небольшим. Пять минут в пятницу на разбор Documents/_Inbox покажут, какие имена пропустили правила, а каждый промах — это обычно новое значение для существующего правила.
Загляни в History один раз после первой недели. Потом можно забыть о ней, пока файл не окажется не там, где ты ожидал — а это редкость, если порядок правил выстроен верно.
FAQ
Можно ли автоматически перемещать файлы на основе имени файла?
Да. Windows и Mac умеют находить файлы по имени встроенным поиском, но не перемещают новые файлы за тебя. Скрипт, запускаемый по расписанию каждые несколько минут, может перемещать всё, чьё имя совпадает с шаблоном. Органайзер файлов на основе правил, такой как File Arbor, следит за папкой и перемещает каждый файл сразу при появлении, если его имя содержит, начинается с, заканчивается на или совпадает с заданным тобой шаблоном.
Как переместить в папку файлы, в имени которых есть определённое слово, на Windows?
Для разовой уборки введи слово в строку поиска File Explorer, выдели все результаты и вырежи-вставь их в целевую папку. Чтобы делать это автоматически, запускай через Task Scheduler PowerShell-скрипт, который перемещает каждый файл, чьё имя совпадает со словом, или создай в органайзере файлов правило «имя содержит», чтобы перемещение происходило в момент появления файла.
Переименовывает ли сортировка файлов по имени сами файлы?
Нет, не в File Arbor. Правило по имени решает только то, в какую папку попадёт файл; файл сохраняет исходное имя, а если файл с таким же именем уже существует в папке назначения, новый файл переименовывается с суффиксом, а не перезаписывает существующий. Hazel на Mac и File Juggler на Windows умеют переименовывать файлы в рамках правила, если тебе это нужно.
Учитывает ли сопоставление по имени файла регистр?
Нет, не в File Arbor. Условия «имя содержит», «начинается с», «заканчивается на» и regex не учитывают регистр, поэтому значение invoice совпадёт с Invoice, INVOICE и invoice. Оператор сопоставления PowerShell тоже по умолчанию не учитывает регистр. На Mac и Linux используй опцию iname команды find вместо name, иначе файл в нижнем регистре проскочит мимо шаблона с заглавными буквами.
Может ли правило создавать папку назначения из части имени файла?
Да. Путь назначения в File Arbor принимает токены, которые читают имя файла. NamePart берёт n-ю часть имени после разбиения по разделителю, поэтому Acme_Invoice_0917.pdf можно направить в Clients/Acme/Invoice, не создавая эти папки заранее. Name берёт фиксированное число символов с заданной позиции. Папки создаются по мере необходимости, а само имя файла никогда не меняется.
Что происходит, когда два правила совпадают с одним и тем же файлом?
Побеждает первое подходящее правило в списке, и файл обрабатывается один раз за проход. Размещай специфичные правила выше общих: правило, требующее одновременно имя клиента и слово invoice, должно стоять выше правила, которое требует только invoice. Держи правило-перехватчик в самом низу списка, чтобы всё, что не подошло ни под одно правило, всё равно попадало в папку-инбокс, а не оставалось на месте.
Итог
Большинство файлов приходят с именем, которое уже говорит, куда их положить. Разовый поиск разбирает завал. Скрипт по расписанию держит одну папку в порядке, если ты готов его поддерживать. Правило по имени делает то же самое для любой папки, любого варианта написания и любого файла, который придёт, пока ты не смотришь, — и записывает, что именно оно сделало.
Начни с одного ключевого слова, которое чаще всего встречается в твоей папке Загрузки. Скачай File Arbor, добавь правило «имя содержит это слово, переместить туда-то», запусти его один раз и проверь History. Если сработает — а оно сработает, — на остальные четыре правила уйдёт по паре минут каждое. Бесплатного тарифа достаточно, чтобы увидеть работу правил по расширению; загляни на страницу цен, чтобы узнать, что добавляют сопоставление по имени и Auto Mode.
