grep: Запаздывающая обратная косая черта

Если вирус только заразил Windows, то Вы не будете заражены, если Вы ничего не выполните от этого экземпляра Windows. Так начальная загрузка с CD Linux прекрасна, и Ваш компьютер будет прекрасен при установке Linux (или даже если Вы переустанавливаете Windows с нуля).

Если бы Вы получили доступ к SD-карте из окон, то вирус мог бы попытаться скопировать себя в нее и затем распространиться на другие машины. Другие машины должны были бы быть уязвимы для вируса, который на практике в значительной степени подразумевает, что они должны были бы запустить Windows. Переформатируйте SD-карту в соответствии с Linux, если Вы волнуетесь, что это могло бы теперь содержать вирус.

В теории вирус мог заразить некоторое встроенное микропрограммное обеспечение в Вашем компьютере (BIOS или любое другое встроенное микропрограммное обеспечение). Однако заражающее встроенное микропрограммное обеспечение вредоносное программное обеспечение чрезвычайно редко в дикой природе. Если Вы не обеспокоены, что это - совместное нападение от высоко мотивированного взломщика, а не некоторого общего infect-the-least-protected троянца, не волнуйтесь об этом.

25
04.02.2016, 16:13
3 ответа

Обратная косая черта является специальным символом для многих приложений:

  • включая оболочку: необходимо выйти из него с помощью другой обратной косой черты или более изящно, с помощью одинарных кавычек когда возможный:

    $ printf '%s\n' foo\\bar 'foo\bar'
    foo\bar
    foo\bar
    

    Здесь команда получила два спора со значением foo\bar, которые были отражены как есть на терминале.

    (Выше, я использовал printf вместо echo как многие echo реализации также делают свою собственную интерпретацию обратной косой черты (здесь расширился бы \b в символ возврата)).

  • Но обратная косая черта является также специальным символом для grep. Эта команда распознает много специальных последовательностей как \(, \|, \., и так далее. Так так же необходимо подать grep с двойным \\ для фактического символа обратной косой черты. Это означает, что с помощью оболочки необходимо ввести:

    grep 'foo\\bar'
    

    или эквивалентно:

    grep foo\\\\bar
    

    (обе строки говорят оболочке передавать foo\\bar как аргумент grep).

  • Много других команд интерпретируют обратные косые черты в некоторых их аргументах …, и два уровня выхода необходимы (один для выхода из интерпретации оболочки, один для выхода из интерпретации команды).


Между прочим, для оболочки, одинарных кавычек '…' предотвратите любой вид символьной интерпретации, но двойные кавычки только предотвращают некоторых из них: в особенности $, ` и \ останьтесь активными символами в "…".

28
27.01.2020, 19:40

Можно также использовать fgrep (который справедлив grep с -F флаг). Это вынуждает grep интерпретировать шаблон как фиксированную строку (т.е. это будет рассматривать a \ как литерал \). Необходимо будет все еще защитить обратные косые черты от расширения оболочкой.

grep -F '\resources\'
20
27.01.2020, 19:40

grep требует, чтобы четыре обратных косых черты представили обратную косую черту:

grep "\\\\resources\\\\"
3
27.01.2020, 19:40
  • 1
    Это - довольно вводящее в заблуждение упрощение. grep только требует, чтобы 1 обратная косая черта вышла из другой обратной косой черты, но оболочка также требует, чтобы обратные косые черты были заключены в кавычки. Двойные кавычки (") НЕ заключайте обратные косые черты в кавычки, но обратная косая черта делает, который является, почему двойные кавычки в Вашем примере ничего не делают, и эти 4 обратных косых черты необходимы вместо этого. NB: –  jw013 09.02.2012, 20:45
  • 2
    я должен был использовать четыре обратных косых черты в Windows даже при том, что командная строка Windows не рассматривает обратные косые черты как *, отклоняет, делает. Интересно, неправильно поняли ли порты GnuWin эффект оболочки и трудно кодированный требование с 4 наклонными чертами, думая, что это было тем, что требовалось grep. –  Synetech 25.12.2015, 21:09

Теги

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