The backslash is a special character for many applications:
including the shell: you need to escape it using another backslash or more elegantly, using single quotes when possible:
$ /bin/echo foo\\bar 'foo\bar'
foo\bar foo\bar
Here the command received two arguments with value foo\bar, which were echoed as-is on the terminal.
(Above I used /bin/echo because, the shell-builtin echo might act differently with some shells)
But backslash is aslo a special character for grep which recognize many special sequences \(, \|, \., etc… So similarly you need to feed grep with a double \\ for an actual backslash character. This means that using the shell you need to type:
grep 'foo\\bar'
or equivalently:
grep foo\\\\bar
(both lines tell the shell to transmit foo\\bar as argument to grep).
Many other commands interpret backslashes in some of their arguments… and two levels of escaping are needed (one to escape the shell interpretation, one to escape the command interpretation).
By the way, for the shell, single quotes '…' prevent any kind of character interpretation, but double quotes only prevents some of them: in particular $ and \ remain active characters within "…".
grep '\\resources\\'– Paul Tomblin Feb 9 '12 at 19:59