Вам необходимо избежать обратной черты, но также и обратной косой черты:
$ touch 1\`
$ /bin/sh -c "ls 1\\\`"
1`
Причина, по которой вам нужно избегать ее «дважды», заключается в том, что вы вводите эту команду в среде (например, сценарии оболочки), которая интерпретирует строку в двойных кавычках один раз. Затем он снова интерпретируется подоболочкой.
Вы также можете избежать двойных кавычек и, таким образом, избежать первой интерпретации:
$ /bin/sh -c 'ls 1\`'
1`
Другой способ - сохранить имя файла в переменной и использовать это значение:
$ export F='1`'
$ printenv F
1`
$ /bin/sh -c 'ls $F' # note that /bin/sh interprets $F, not my current shell
1`
И, наконец, то, что вы пробовали, будет работать на некоторых оболочках (я использую bash, как в приведенных выше примерах), просто, очевидно, не с вашей оболочкой:
$ /bin/sh -c "ls 1'\`'"
1`
$ csh # enter csh, the next line is executed in that environment
% /bin/sh -c "ls 1'\`'"
Unmatched `.
Я настоятельно рекомендую вам избегать таких имен файлов на первом месте .