У меня есть несколько сотен тысяч файлов, личных вещей, таких как фотографии, видео и документы, собранные и сохраненные в течение многих лет. Большинство из них организованы по типу, датам и темам ... Но некоторые (например, файлы размером 10k) не организованы и перемещались из каталога в каталог и переименовывались несколько раз около 2 лет назад. Я ищу ( путь) к некоторым из этих файлов (надеюсь, что я не удалил их случайно).
Сохраняются ли переименованные файлы в каком-либо журнале или метаданных где-нибудь?
Есть ли способ поиска старых файлов с использованием их предварительного переименования имя? Если да, то какую команду или инструмент мне использовать?
Я знаю тип файла, приблизительный размер и некоторые возможные имена, но до сих пор ничего не нашел с помощью команды find
.
Как говорит @vanadium, нет способа сделать именно то, что вы хотите.
Единственное, что я могу придумать, что отдаленно похоже на это, это если бы у вас была старая копия (некоторых) файлов. Тогда вы могли бы выполнить rsync из каталога этого файла в остальную часть вашей системы, указав --fuzzy --fuzzy
(дважды) и --dry-run
, чтобы заставить rsync искать тот же файл, который может иметь другое имя в другом каталоге, и просто сказать вам, что он собирается сделать, ничего не записывая в вашу текущую систему.
Если файл не двоичный (например, текст или документ), вы можете использовать такой инструмент, как recoll, для индексации и поиска в текущей системе. Он легко выполняет простой поиск, но также имеет расширенные запросы для более точного поиска. При первом запуске он занимает некоторое время и создает довольно большую базу данных. У нее есть целевой тип файлов "media", но я никогда не пробовал использовать его в явном виде.
grep также будет искать определенное содержимое в недвоичных файлах, но он будет искать все по пути, который вы ему укажете каждый раз, так что если вы ищете много вещей, то позволить recoll создать и найти индекс может стоить того - и это может быть удобно в будущем для других поисков. Я использую его не очень часто, но когда использую, это спасает жизнь.
- Сохраняется ли переименование файлов в каком-либо журнале или метаданных?
На практике нет. Имена файлов - это одна запись в файловой системе. В Linux имя файла указывает на индексный дескриптор, который является настоящим уникальным идентификатором файла. Таким образом, один файл может существовать в нескольких местах файловой системы Linux. Если вы переименуете файл, новое имя займет место старого в файловой системе.
Это упрощение: современные файловые системы сложны. Например, у них обычно есть дневник, где временно может храниться старое имя. Это, однако, имеет шкалу времени всего в минутах, а не в два года.
- Есть ли способ искать старые файлы, используя их предварительно переименованные имена? Если да, то какую команду или инструмент я использую?
Из-за 1 - нет. Переименованное имя файла перезаписывается.
- Есть ли способ найти на жестком диске (SSD) (возможно) удаленные файлы по определенному пути без перестройки таблицы разметки файлов всего раздела (это может занять целую вечность !?)?
Вы находятся в области восстановления данных. Восстановление данных в современной файловой системе Linux довольно сложно из-за того, как они работают. Существует инструмент photorec
(и сопровождающий его инструмент testdisk
), который позволяет частично восстановить удаленный файл - photorec
, однако, не будет работать на основе имен файлов, но будет вырезать цифровые данные, восстанавливая блоки, когда распознает цифровые данные, которые напоминают известный формат файла.
Перемещение и особенно удаление данных следует рассматривать как необратимый процесс для практических целей.Единственная мера предосторожности против нежелательных или ошибочных операций с файлами - это поддерживать резервную копию, в вашем случае предпочтительно с управлением версиями (т.е. сохранением очень старой версии).