linux路径特殊符号转义,Linux命令使⽤时路径存在空格、特殊
符号(如-、@等等)...
Linux命令使⽤时路径存在空格、特殊符号(如-、@等等)如何处理呢?
再如可以转义的字符包括:"?"(问号), "*"(星号), " "(空格), "$"(货币符), "&"(逻辑符), "( )"(英⽂括号)等等。
很早之前应该是遇到过这种问题,也处理过该问题,但是不记得怎么处理的了,也没到⾃⼰以前处理过的博客,那就简记下吧。
(1)Linux路径约定
在Linux下可以使⽤长⽂件名和⽬录名,可以给它们取任何名称,但是必须遵守以下规则:
☆除了/外,所有的字符都可以;
☆有些字符最好不⽤,如空格符、制表符、退格符和以下字符:? @ # $ & ( ) \ | ' ' " " 等(其中,/ 号已经在第⼀条被严格禁⽌了,()是英⽂括号);
☆避免使⽤+-或.作为普通⽂件名的第⼀个字符(在Linux下以.开头的⽂件是属于隐藏⽂件);
☆和Windows⽂件命名不⼀样的是,在Linux下⽂件名⼤⼩写敏感。
☆另外,尽量避免使⽤中⽂和中⽂符号;
(2)路径处理遇到的问题及解决办法
⽐如说路径:
/home/ubuntu/zgd/firmwareExtracted/Foscam/_ac0--for
1.14.1.14 version acted/_FI9805W_app_ver1.14.0.acted/_0.extracttracted/app/bin
那么想进⼊此路径⽬录下,执⾏
cd /home/ubuntu/zgd/firmwareExtracted/Foscam/_ac0--for 1.14.1.14 version acted/_FI9805W_app_ver1.14.0.acted/_0.extracttracted/app/bin
会报错⽆此⽂件或⽂件夹,如下图所⽰:
解决办法是路径加上⼀个双引号。然后就ok了。如下⾯所⽰:
⽅法⼀:(推荐使⽤,⽅法简单可⾏)
cd “/home/ubuntu/zgd/firmwareExtracted/Foscam/_ac0--for 1.14.1.14 version acted/_FI9805W_app_ver1.14.0.acted/_0.extracttracted/app/bin”
⽅法⼆:(貌似不能⾏)
看到有的博客说在路径前⾯加上--就能解决问题,然后我尝试了⼀下,发现仍然会出现这种报错问题。
⽅法三:(可⾏,但有些⿇烦)
将每⼀个存在特殊符号的位置,都使⽤转义符“\”进⾏转义。这种⽅法也是ok的,只是存在⼀个问题是,你不知道你的列表⾥是否包含了所有不能处理的特殊字符。我的列表⾥就很少字符。所以不是很建议采⽤此种⽅法。
special_symbol = ["?", "*", "@", "#", "$", "&", "%", "(", ")", " ", ""]
⽅法四:(可⾏,⿇烦程度较⽅法三更⾼)
⽤双引号包含某段带有⾮法字符的路径⽚段
例如,打开 Program Files (x86) ⽂件夹:
1
$ cd Program" Files (x86)"
这种⽅法⾮常灵活,双引号使⽤次数不限,只要成对出现即可,终端会对引号内容照单全收。
linux命令查看文件夹大小例如,打开 Program Files (x86)/Adobe/Adobe Photoshop CS6 ⽂件夹,你还可以这样:
1
$ cd Pro"gram Fi"les" (x86)/Adobe""/Adobe "Photo"shop C"S6
这条指令间断、或不间断地使⽤了4次双引号,只要保证所有空格和括号都被包括在成对的双引号范围内,⽂件夹都能正常打开。
总结⼀下:最好最快速的⽅法:在linux下处理路径的时候,如果遇到⼀些特殊符号,执⾏命令出错的时候,那就使⽤双引号“”进⾏处理⼀下就ok了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论