当前位置: 首页 > 科技观察

linux系统下,以下文件名中包含空格,如何处理?

时间:2023-03-13 19:51:41 科技观察

为什么会这样?不是不能用空格,而是如果用空格会比较麻烦。例如,我们应该熟悉命令行。一般的语法结构如下:command[optionjs]argument1argument2...也就是说commands、options、parameter之间用空格隔开。如果参数是一个文件,而这个文件的文件名中包含空格,那么文件名中用空格隔开的部分会被当作单独的参数来处理,这样就会出现问题。比如我当前的工作目录下,有这样一个文件tiapcomm.txt,如果我用cat命令查看文件内容:cattiapcomm.txt,系统就会报错,如图下图:如果文件名称中有空格怎么办?一般有两种方式:1)将文件名放在引号内;2)使用反斜杠\来转义空格。以上两种方法中,推荐使用第一种,原因我们会在后面的章节中介绍。使用引号处理文件名中包含空格前面提到,如果要查看文件的内容,但是文件的文件名中包含空格,可以将文件名放在双引号中,如下:cat"tiapcomm.txt"另外还可以使用单引号:cat'tiapcomm.txt'双引号和单引号的区别可以参考我们之前的文章:单引号和双引号的区别BashShell中引用创建文件或文件夹,如果文件名需要包含空格,处理方法相同:mkdir"文件夹名"cd"文件夹名"touch"新建文件"使用反斜杠处理文件中有空格名称如果文件或文件夹名称包含空格,请使用反斜杠对空格进行转义。需要注意的是,文件名中的每个空格都需要用反斜杠转义,例如:catfile\name\with\space或者前面的例子:cattiap\comm.txt其他例子:mkdircreate\new\foldercdcreate\new\folder/touchnew\file前面我们提到用反斜杠处理空格不如引号。我们举个例子来说明一下,如果我们当前在/home/gliu/work/tiap这个路径下:上面有一个命令:cdcreate\new\folder/two/是不是看起来很乱?如果换成引号就更好了:cd"newfolder"/two。尽管如此,我们还是建议在Linux系统中,文件名不要包含空格。如果需要分隔文件名中的单词,统一使用下划线:folder_name_with_space