Ama*_*man 12 filesystem command-line bash
当我想导航到名称中包含特殊字符的目录时,我收到一条错误消息。
例如:
aman@desktop:~/Aman$ cd !)e$!gn&(reate
bash: !: event not found
aman@desktop:~/Aman$
Run Code Online (Sandbox Code Playgroud)
这!)e$!gn&(reate是我要导航的目录名称。
如何纠正这个错误?
如何使用cd命令在 Ubuntu 中导航目录名称带有特殊字符的目录?
Aar*_*ron 19
发生该错误是因为!(bang) 是一个快捷方式,允许您从历史记录中重新运行命令。例如:此命令从我的历史记录中重新运行命令 #1504。
$ !1504
Run Code Online (Sandbox Code Playgroud)
为避免该问题,请尝试用单引号封装您的目录名称。
$ cd '!)e$!gn&(reate'
Run Code Online (Sandbox Code Playgroud)
话虽如此,虽然 Ubuntu (Linux) 允许您以这种方式命名目录,但我强烈建议您不要这样做。在目录名称中使用特殊字符会使它们难以阅读,如果您使用的是保留字符,则始终需要对其进行转义或将目录名称封装在引号中。
Bac*_*ash 10
您\在特殊字符之前使用
cd \!\)e\$\!gn\&\(reate
Run Code Online (Sandbox Code Playgroud)
您还可以将整个文件夹名称放在单引号中
cd '!)e$!gn&(reate'
Run Code Online (Sandbox Code Playgroud)
您可以将整个路径封装在单引号中
cd 'Desktop/!)e$!gn&(reate'
Run Code Online (Sandbox Code Playgroud)
如果要引用 /home/username 目录中的~/路径:只需在路径前添加单引号
cd ~/'Desktop/!)e$!gn&(reate'
Run Code Online (Sandbox Code Playgroud)