В Linux.
Я знаю, что могу сделать find . -type f
, но это включает двоичный файл, и я не мог найти способ исключить их с находкой
file /usr/bin/file
, например, не включает слово "двоичный файл" в его вывод в моей системе. Если file -i
доступно, это действительно включает слово "двоичный файл". Без -i
, это может быть более надежно для тестирования на присутствие слова "текста".
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print
или
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -ls
Используя -i
:
find -type f -exec sh -c "file -i {} | grep -v binary >/dev/null" \; -print
Используя file
только будет приближением, так как оно использует эвристику для определения типа файла и нет никакого твердого определения того, что составляет "двоичный" файл. Действительно ли пустой файл является "двоичным"? file
говорит, что это. Кроме того, существует много из (обычно редко) способы инициировать ложные положительные идентификаторы file
.