Linux 系統下,如下文件名中含有空格,該如何處理?
為什么會這樣呢?不是因為不能用空格,而是因為如果使用空格的話,會比較麻煩。舉個例子,我們應該熟悉在命令行中,一般的語法結構是下面這個樣子的:
也就是說,命令、選項、參數之間都是用空格隔開的,如果參數是某個文件,而這個文件的文件名中含有空格,那么文件名被空格隔開的部分都會被視為單獨的參數,這就會帶來問題。
比如,在我當前工作目錄下,有這樣一個文件 tiap comm.txt,如果我使用?? cat 命令??查看文件內容:cat tiap comm.txt,系統就會報錯,如下圖所示:
那假如文件名中,含有空格,應該怎么辦呢?
一般來說,有如下兩種方式:
1)將文件名放到引號中;
2)使用反斜杠 \ 來轉義空格。
上面兩種方法中,建議使用第一種,原因我們在下面章節中介紹。
使用引號來處理含有空格的文件名
前文中提到,如果要查看某個文件中的內容,但是該文件的文件名含有空格,可以將文件名放在雙引號中,如下所示:
另外,也可以使用單引號:
關于雙引號和單引號的區別,大家可參考我們先前的文章:
創建文件或文件夾,如果文件名需要包含空格,處理方式也是一樣:
使用反斜杠處理名稱含有空格的文件
如果文件或文件夾的名稱中含有空格,使用反斜杠來轉義其中的空格,需要注意的是,文件名中的每一個空格,都需要使用反斜杠來轉義,比如:
還是先前的例子:
其他例子:
前文中我們提到過,使用反斜杠來處理空格不如引號,我們舉個例子來說明,假如我們當前處于路徑 /home/gliu/work/tiap 下:
上面有個命令:
看起來是不是比較亂?
如果換成引號:
就好多了。
即便如此,我們建議在 Linux 系統中,文件名中不要包含空格,如果需要分割文件名中的各個單詞,統一使用下劃線: