我需要对具有“!”的文件执行一些linux命令操作像文件名中的字符。但是,每当我尝试执行命令时,都会遇到错误。
[root@ATD-6000 ~]# cat a!aapoorv.txt
-bash: !aapoorv.txt: event not found
我正在使用paramiko模块在python中执行这些命令。我无法使用原始字符串r'filestringname',因为我正在从数据库本身读取字符串名称。
如何使用python/bash转义/处理这些字符之王。
最佳答案
尝试这个:
cat a\!aapoorv.txt
或这个cat 'a!aapoorv.txt'
有关更多信息,您可以查看有关 QUOTING 的
man bash
。这是其中的一些文件:
这是输出:
[kevin@Arch test]$ ls
a!aapoorv.txt
[kevin@Arch test]$ cat a\!aapoorv.txt
Hello, This is a test
[kevin@Arch test]$ cat 'a!aapoorv.txt'
Hello, This is a test
在Python上,您不需要转义特殊字符,这是一个测试:
>>> with open('a!aapoorv.txt') as f:
... f.read()
...
...
'Hello, This is a test\n'
>>> with open(r'a!aapoorv.txt') as f:
... f.read()
...
...
'Hello, This is a test\n'
>>>