Один из подходов - поместить желаемое имя файла в Try:
$ touch "\"\\\$*'PNP'*$\\\""
$ echo *PN*
"\$*'PNP'*$\"
Если вы запустите ls
, имейте в виду, что в имени файла могут быть экранированные символы:
$ ls
'"\$*'\''PNP'\''*$\"'
В приведенной выше команде touch
требуется экранирование. Во-первых, чтобы заключить в двойные кавычки строку, заключенную в двойные кавычки, ее нужно преобразовать в \"
. Во-вторых, чтобы поместить backsla sh в строку, заключенную в двойные кавычки, она также должна быть экранирована как \\
. Внутри строки, заключенной в двойные кавычки, '
не нужно экранировать.
Альтернатива: строка в одинарных кавычках
$ touch '"\$*'\''PNP'\''*$\"'
$ echo *PN*
"\$*'PNP'*$\"
В приведенном выше примере пять строк:
'"\$*'
\'
'PNP'
\'
'*$\"'
Строки 1, 3 и 5 заключаются в одинарные кавычки. Строки 2 и 4 не заключены в кавычки, но не заключены в одинарные кавычки.