Есть ли программы, подходящие для создания базы данных по содержимому диска?

Есть ли программы, подходящие для создания базы данных по содержимому диска?

У меня довольно много внешних жестких дисков, и часто мне трудно найти то, что я ищу, не говоря уже о том, чтобы не хранить один и тот же файл несколько раз на разных дисках или не находить свободное место, когда мне это нужно. Поэтому я задался вопросом, есть ли какие-либо программы баз данных, подходящие для хранения содержимого дисков; включая имена файлов, размер и даты изменения?

В целом, чем более автоматизирована программа в поиске каждого диска и анализе информации о файлах, тем лучше. В идеале она должна использовать контрольную сумму (или что-то еще) для идентификации идентичных файлов. База данных, которая также хранит информацию о каждом диске — например, разбиение на разделы, формат (файловые системы) и оставшееся свободное место (на каждом разделе) — будет плюсом.

У меня MySQL и PostgreSQL, а также Apache с PHP, запущенные на моем компьютере, поэтому я могу использовать решение на их основе. Хотя мне действительно нужна более специализированная автономная программа; по крайней мере, для управления коллекциями, но желательно специализированная для отслеживания файлов на нескольких дисках.

Я также открыт для нетрадиционных подходов (использование программы, предназначенной для чего-то другого). Была ли у кого-нибудь похожая проблема и нашел ли он хорошее решение?

решение1

Похоже, вам нужна какая-то база данных медиа-контента. Существует множество таких баз данных; вот несколько из тех, на которые вы, возможно, захотите взглянуть:

Поскольку они в первую очередь предназначены для каталогизации CD и DVD, проблем возникнуть не должно, даже если разные жесткие диски установлены в одном месте.

решение2

После некоторых поисков я обнаружилэтотдля рекурсивного вывода списка всех файлов в каталоге:

ls -R $PATH | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'

Итак, что бы я сделал, это сохранил бы это как скрипт под названием listall.sh,

ls -Rlah / | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'

иметь программу, запускающую его часто, как:

./listall.sh > ~/filelist

и затем, когда вам понадобится найти файл, вы можете запустить:

cat ~/filelist | grep [whatever filename, date, or size you want]

Это лучший способ, который я смог придумать. Что вы думаете?

решение3

Может быть, вы можете (просто) использовать программное обеспечение для поиска на компьютере,Трекернапример, который может просматривать, индексировать и предоставлять вам возможность выполнять поиск с помощью расширенного языка запросов в вашей базе данных.

Это не сработает, если вы смонтируете разные диски в одной точке монтирования.

Полагаю, вам нужно будет смонтировать их в разные точки монтирования: например, диск «Черный» в /mnt/disk/black или /media/black и так далее.

После этого вы сможете выполнить сортировку самостоятельно, указав путь к местоположению, а также, если захотите, выполнить сортировку по диску, добавив критерии поиска в начало пути к местоположению.

Связанный контент