Возникла тут нужда статистической выборки по определённому неструктурированному хранилищу. Задача, как оказалось, довольно тривиальная, хотя, на первый взгляд, так не показалось. Сотрудники несколько лет сканировали документы и складывали их, предположим, в Папка1, потом перестали их складывать туда и создали Папка2. За время этого сканирования сменилось 4 начальника, у которых менялось видение того, как это всё должно храниться, и когда-то файлы складывались, например, в Папка1\2007\декабрь\Иванов\характерный_параметр\номер дела\номер тома\документы.pdf, когда-то в Папка1\Петров\характерный_параметр\документы.pdf, иногда Папка2\Для экспорта\Название региона откуда документы\характерный_параметр\документы.pdf и т.д. и т.п. Всё общее, что это объединяет это — тип файлов, по которым делается выборка — *.pdf и выборка только по «характерный_параметр», которого несколько десятков вариантов в промежутке от 00 до 99 🙂
Понимая, что этот зоопарк сложно как-то классифицировать и даже простое рысканье по сотням тысяч вложенных папок с целью составления списка займёт недели, я как-то вдруг подумал, а не создать ли список вообще всех *.pdf в Папка1/2 с фильтрацией по всем вариантам «характерный_параметр».
Статистика требовала всего два параметра — количество файлов в хранилище и их суммарный объём. Хранилище на каком-то Win сервере (не очень было интересно выяснять, на каком, но осталось у меня подозрение, что это был Win2008srv). К сожалению, не было возможности долго поизучать возможности программ поиска под Win на предмет чего-либо интеллектуального и требующегося, поэтому принял решение примонтировать диск файлового хранилища к Linux системе и делать всё с помощью find и др. Читать далее →