https://blog.csdn.net/Homewm/article/details/102935965
Linux命令使用時路徑存在空格、特殊符號(如-、@等等)如何處理呢?
再如可以轉義的字符包括:"?"(問號), "*"(星號), " "(空格), "$"(貨幣符), "&"(邏輯符), "( )"(英文括號)等等。
(1)Linux路徑約定
在Linux下可以使用長文件名和目錄名,可以給它們取任何名稱,但是必須遵守以下規則:
☆除了/外,所有的字符都可以;
☆有些字符最好不用,如空格符、制表符、退格符和以下字符:? @ # $ & ( ) \ | ' ' " " 等(其中,/ 號已經在第一條被嚴格禁止了,()是英文括號;
☆避免使用+-或.作為普通文件名的第一個字符(在Linux下以.開頭的文件是屬於隱藏文件;
☆和Windows文件命名不一樣的是,在Linux下文件名大小寫敏感。
☆另外,盡量避免使用中文和中文符號;
解決辦法
路徑加上一個雙引號
將每一個存在特殊符號的位置,都使用轉義符“\”進行轉義,你不知道你的列表里是否包含了所有不能處理的特殊字符,以及字符的位置,修改后是否會引發新的問題。因此不是很建議采用此種方法。
special_symbol = ["?", "*", "@", "#", "$", "&", "%", "(", ")", " ", ""]