Как вывести список файлов .txt с определенным содержанием?

Краткий ответ: вы не можете сказать.

Но если команда приглашения входа в систему была заменена, это означает, что злоумышленник имеет root-доступ к машине. В этом случае он / она также мог:

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

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

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

5
21.02.2018, 04:33
4 ответа

Simplefind+grepsolución:

find. -type f -name "*.txt" -exec grep -li --binary-files=without-match 'ubuntu' {} \;

grepdetalles:

  • l-suprime la salida normal; en su lugar, imprima el nombre de cada archivo de entrada desde el que normalmente se habría impreso la salida
  • i-ignorar las distinciones entre mayúsculas y minúsculas, de modo que los caracteres que difieren solo en mayúsculas y minúsculas coincidan entre sí
3
27.01.2020, 20:32

GNU grep admite la búsqueda recursiva basada en un patrón glob -, p.:

grep --include='*.txt' -ril ubuntu /path/to/dir

Si no está buscando una expresión regular, este proceso será mucho más rápido si incluye -coincidencia de cadenas fijas(-F). Otra optimización es eliminar ignorar -caso(-i)si sabe que no es necesario.

8
27.01.2020, 20:32

Esto es lo que normalmente uso:

find /path/to/top/dir -type f -name '*.txt' -exec grep -iHI ubuntu {} \;
1
27.01.2020, 20:32

Некоторые реализации утилиты grepимеют флаг -I, который заставляет grepигнорировать двоичные файлы. Вы также можете использовать -iдля поиска совпадения без учета регистра -и -Fдля сопоставления с фиксированной строкой (, а не с регулярным выражением ). Если вы ищете отдельные слова , вам следует использовать -w, которые есть в некоторых grepреализациях. Затем, чтобы рекурсивно перейти в подкаталоги, вы можете использовать -Rдля рекурсивного поиска файлов и -lдля получения имен файлов, содержащих совпадения с шаблоном. Затем мы хотели бы использовать --include, если у нас есть GNU grep, чтобы просматривать только файлы с определенным расширением.

grep -Fil -IRw --include='*.txt' 'ubuntu' /path/to/top/dir

Использованы стандартные опции :-F, -i, -l.

Использовались не -стандартные опции (, поддерживаемые некоторыми grepреализациями ):-w, -I, -R, --include.


Использование findи OpenBSD grep, которая не имеет --includeи использует --binary-filesвместо-I(GNU grepтакже имеет этот флаг):

find /path/to/top/dir -type f -name '*.txt' \
    -exec grep -Fil -w --binary-files=without-match 'ubuntu' {} +
3
27.01.2020, 20:32

Теги

Похожие вопросы