Linux 系統(tǒng)下,如下文件名中含有空格,該如何處理?
為什么會(huì)這樣呢?不是因?yàn)椴荒苡每崭?,而是因?yàn)槿绻褂每崭竦脑?,?huì)比較麻煩。舉個(gè)例子,我們應(yīng)該熟悉在命令行中,一般的語(yǔ)法結(jié)構(gòu)是下面這個(gè)樣子的:
也就是說(shuō),命令、選項(xiàng)、參數(shù)之間都是用空格隔開的,如果參數(shù)是某個(gè)文件,而這個(gè)文件的文件名中含有空格,那么文件名被空格隔開的部分都會(huì)被視為單獨(dú)的參數(shù),這就會(huì)帶來(lái)問題。
比如,在我當(dāng)前工作目錄下,有這樣一個(gè)文件 tiap comm.txt,如果我使用?? cat 命令??查看文件內(nèi)容:cat tiap comm.txt,系統(tǒng)就會(huì)報(bào)錯(cuò),如下圖所示:
那假如文件名中,含有空格,應(yīng)該怎么辦呢?
一般來(lái)說(shuō),有如下兩種方式:
1)將文件名放到引號(hào)中;
2)使用反斜杠 \ 來(lái)轉(zhuǎn)義空格。
上面兩種方法中,建議使用第一種,原因我們?cè)谙旅嬲鹿?jié)中介紹。
使用引號(hào)來(lái)處理含有空格的文件名
前文中提到,如果要查看某個(gè)文件中的內(nèi)容,但是該文件的文件名含有空格,可以將文件名放在雙引號(hào)中,如下所示:
另外,也可以使用單引號(hào):
關(guān)于雙引號(hào)和單引號(hào)的區(qū)別,大家可參考我們先前的文章:
??Bash Shell 中單引號(hào)和雙引號(hào)的區(qū)別??
創(chuàng)建文件或文件夾,如果文件名需要包含空格,處理方式也是一樣:
使用反斜杠處理名稱含有空格的文件
如果文件或文件夾的名稱中含有空格,使用反斜杠來(lái)轉(zhuǎn)義其中的空格,需要注意的是,文件名中的每一個(gè)空格,都需要使用反斜杠來(lái)轉(zhuǎn)義,比如:
還是先前的例子:
其他例子:
前文中我們提到過(guò),使用反斜杠來(lái)處理空格不如引號(hào),我們舉個(gè)例子來(lái)說(shuō)明,假如我們當(dāng)前處于路徑 /home/gliu/work/tiap 下:
上面有個(gè)命令:
看起來(lái)是不是比較亂?
如果換成引號(hào):
就好多了。
即便如此,我們建議在 Linux 系統(tǒng)中,文件名中不要包含空格,如果需要分割文件名中的各個(gè)單詞,統(tǒng)一使用下劃線: