Ваша проблема не тривиальна. Файловая команда solaris использует "magic" - / etc / magic. Это набор правил, чтобы попытаться определить тип файла. Это не идеально.
Если вы прочитали файл / etc / magic, обратите внимание, что последний столбец - это словоблудие, которое содержится в выходных данных команды file, когда она что-то распознает, какая-то структура в файле.
По сути, команда file просматривает первые несколько байтов файла, как это делает семейство системных вызовов exec (). Таким образом, # / bin / sh в самой первой строке файла, в первых символах строки, определяет для exec () «интерпретатор команд», который exec () должен вызывать для «запуска» файла. файл получает ту же идею и говорит «текст команды», «текст awk» и т. д.
Ваши проблемы заключаются в том, что вы должны решить, какие типы файлов вы будете видеть как вывод из файла. Вам нужно потратить время на изучение незашифрованных файлов, чтобы увидеть, какие «ответы» вы можете ожидать от файла. В противном случае вы можете запустить файл по всему дереву каталогов и отсортировать все, что вы считаете правильными ответами.
find /path/to/files -type f -exec file {} \; | nawk -F':' '!arr[$2]++' > outputfile
Это дает вам список четких ответов о том, что файл думает, что у вас есть. Поместите те, которые вам нравятся, в файл, назовите его good.txt
find /path/to/files -type f -exec file {} \; > bigfile
nawk -F':' 'FILENAME=="good.txt" {arr$1]++}
FILENAME=="bigfile" {if($2 in arr) {print $1}} ' good.txt bigfile > nonencryptedfiles.txt
ЭТО НЕ 100% гарантировано. файл можно обмануть.