Я попытался восстановить образ диска с жесткого диска NTFS, который на 50% нечитаем. И я предполагаю, что побочным эффектом этого является то, что многие восстановленные файлы имеют правильное имя файла и тип и занимают тот же размер файла, что и исходный файл, однако вместо того, чтобы содержать какие-либо полезные данные, они просто заполнены 00 00 00 00 и т. д. в HEX-редакторе. Поскольку эти файлы бесполезны, но все равно занимают место на диске, есть ли способ автоматизировать их поиск и удаление?
Использование grep для поиска и удаления файлов, заполненных нулями
comment
Выполните обратный двоичный поиск нулевого байта. Не удаляйте, если что-то найдено в файле. Посмотрите справочные страницы, какие флаги использовать.
- person Mad Physicist   schedule 15.07.2018
comment
Позвольте @tripleee помочь вам... stackoverflow.com/a/20225032/2836621
- person Mark Setchell   schedule 15.07.2018
comment
Возможный дубликат Как проверить если файл содержит только нули в оболочке Linux?
- person tripleee   schedule 23.07.2018
comment
Я просматриваю старые резервные копии, а также вижу файлы размером ~ 50 ГБ в информации о системном томе, в которых нет ничего, кроме нулей при просмотре в шестнадцатеричном редакторе. Их легко удалить!
- person endolith   schedule 28.02.2019
Ответы (1)
После некоторых исследований я придумал
grep --ignore-case -r -L --null [^0] * | xargs -0 rm
person
TheBladeRoden
schedule
23.07.2018
Это удаляет файлы, содержащие только 0x30 байт (код ASCII для символа
0
). Некоторые варианты grep
могут поддерживать обозначение [^\000]
или, если у вас есть Bash, вы можете сказать $'[^\x00]'
- person tripleee; 23.07.2018